es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo solucionar el error de forzar una llamada a https en JavaScript?

¿Cómo resuelvo el error de forzar una llamada a https en JavaScript?

Aquí está mi fuente SSE.

const eventInit = () => {

<pre><code>console.log("eventInit called");
const url = `${_EVENT_PUSH_ENDPOINT}/itf/subscribe`
//suscribirse al evento
var httpRequest = new XMLHttpRequest();
httpRequest.open("GET",url, true);
httpRequest.setRequestHeader("Accept", "text/event-stream");
httpRequest.send();
</code></pre>

const eventSource = new EventSource(url);

<pre><code>eventSource.onopen = (event) => {
    console.log('sse open');
}

eventSource.onerror = (event) => {
    if (event.readyState == EventSource.CLOSED) {
        console.log('sse close');
    } else {
        console.log("onerror", e);
    }
}

eventSource.addEventListener('myEvent', function (event) {
    const data = JSON.parse(event.data);
    if(data.positionYn == "Y"){
    data.dvcStatus = data.poiStatus
        init();
       soundControl.control(data)
        drawHtml.eventListViewer(data); // Dibujar la lista de espectadores
    }
}, false);
</code></pre>

}
<code>
En este momento, ocurre el siguiente error.
</code>
eventCtrl.js?v=1.6:87 Uncaught ReferenceError: e no está definido
    at EventSource.eventSource.onerror(eventCtrl.js?v=1.6:87)
eventSource.onerror @ eventCtrl.js?v=1.6:87
error (asíncrono)
eventInit @ eventCtrl.js?v=1.6:83
(Anónimo) @ index.js:495
:8330/itf/subscribe:1 GET https://localhost:8330/itf/subscribe net::ERR<em>SSL</em>PROTOCOL_ERROR

imprimir la URL en las herramientas de desarrollo de Chrome,

url
'http://localhost:8330/itf/subscribe'

Se muestra normalmente, pero dentro de JavaScript, continúa llamando a https://localhost:8330/itf/subscribe.

No sé por qué llama a https aunque la url es http.

Me pregunto cómo puedo resolver este problema.

¡Saludos cordiales!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el error de forzar una llamada a HTTPS en JavaScript, puedes intentar agregar la siguiente línea de código a tu archivo JavaScript:

    if (location.protocol !== 'https:') {
        location.replace(`https:${location.href.substring(location.protocol.length)}`);
    }
    

    Este código verifica si el protocolo no es HTTPS, y si no lo es, reemplaza la ubicación actual con una versión HTTPS de la misma URL. Esto debería forzar la llamada a utilizar HTTPS.

    Otra alternativa es cambiar la configuración del servidor para redirigir las solicitudes HTTP a HTTPS, si el servidor admite HTTPS.

    También puedes intentar usar una URL relativa en lugar de una URL absoluta en tu archivo JavaScript:

    const url = `/itf/subscribe`;
    

    Esto utilizará el mismo protocolo (HTTP o HTTPS) que la página actual.

Comments are closed.