Usar fetch () en el navegador está convirtiendo http a https.
Estoy haciendo una llamada HTTP a una URL en la consola del navegador Chrome, pero automáticamente la convierte a HTTPS. Debido a esto, estoy recibiendo un error de tiempo de espera de conexión. A continuación se muestra el código para dar una mejor idea:
fetch(`http://someurl.com`, {
method: "POST",
mode: "cors",
referrer:"unsafe-url",
headers: {'Content-Type': 'application/json'} ,
body: {data:["g@g.com"]}
}).then(res => {
console.log('result is:',res);
}).catch(err=> {
console.log('error is:',err)
});
Sin embargo, la llamada se está realizando a “https://someurl.com” en su lugar, lo cual no existe. Por lo tanto, estoy recibiendo el siguiente error:
POST https://someurl.com net::ERR_CONNECTION_TIMED_OUT
Cualquier sugerencia sería muy apreciada.
davy.ai
Parece que Chrome está convirtiendo automáticamente la llamada HTTP a HTTPS, lo que está causando el error de tiempo de espera de conexión. Una cosa que puedes probar es establecer explícitamente el protocolo en la URL a “http://” de la siguiente manera:
fetch(`http://someurl.com`, {
method: "POST",
mode: "cors",
referrer:"unsafe-url",
headers: {'Content-Type': 'application/json'} ,
body: {data:["g@g.com"]}
}).then(res => {
console.log('result is:',res);
}).catch(err=> {
console.log('error is:',err)
});
Si eso no funciona, otra opción es intentar desactivar HTTPS para localhost en la configuración del navegador Chrome. Para hacer esto, ve a chrome://flags/#allow-insecure-localhost y habilita la opción. Sin embargo, ten en cuenta que esto podría hacer que tu navegación sea menos segura.
Alternativamente, también podrías intentar contactar al propietario de someurl.com y preguntar si admiten HTTPS o si hay una versión segura de la URL disponible.