Recientemente (al momento de escribir este post) Chrome se ha actualizado para ser más seguro, y en ocasiones nos va a lanzar el error que dice:

Access to fetch at ‘dominio’ from origin ‘otro_dominio’ has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space local.

Es un error de CORS pero no de los errores que conocemos. Este es nuevo, y dice:

The request client is not a secure context and the resource is in more-private address space local.

Así que en este post te mostraré de qué va ese error y por qué me interesa.

Chrome bloquea solicitudes a localhost si no hay https

En palabras simples, lo que está pasando es lo que ves en el título. Obviamente esto tiene sus detalles y motivos explicados en este artículo.

Básicamente si no estás en un contexto seguro (un sitio con https o en localhost), tu app web no puede hacer llamadas (usando fetch por ejemplo) a localhost en un puerto distinto.

La solución es cambiarse a https. Así de simple, y no recomiendo otra manera de solucionarlo.

El problema con el plugin de impresión

Hace un tiempo hice un plugin para imprimir en impresoras térmicas desde JavaScript sin pedir confirmación.

El plugin crea un servidor local en localhost:8000 y acepta todas las peticiones desde otros sitios web, permitiendo que se imprima a través de solicitudes HTTP.

Aquí el problema es que si el sitio desde donde imprimes no es seguro, entonces no podrá invocar a mi plugin. Y en ese caso no puedo hacer nada, pues no depende de mí que tu sitio sea o no seguro.

La solución, como ya lo dije, es actualizar tu sitio a https o usar localhost. Así de simple, y no necesitas cambiar nada del código de impresión ni el plugin en sí.

El único problema que veo es con las IPs locales, pero no he tenido la oportunidad de probar el comportamiento.

De igual forma no te recomiendo mantener tu navegador desactualizado. Las actualizaciones de seguridad siempre son importantes, y somos nosotros quienes nos debemos adaptar a ellas.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 2,824 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

4 Comentarios

Miguel · octubre 7, 2021 a las 7:24 pm

Buenas tardes,

Me gusto lo que pusiste en el Blog, tarde o tempranos todos debemos actualizarnos para bien.

Quería saber si hay una forma de solucionarlo agregando CORS al servidor y al cliente por mientras para que siga funcionando hasta poder actualizar y funcione debidamente.

Gracias

    parzibyte · octubre 8, 2021 a las 9:41 am

    Lo único que se me ocurre es cambiar de navegador. Creo que Firefox todavía acepta esas peticiones al momento de escribir este comentario

Martin · octubre 1, 2021 a las 12:35 pm

Como va Parzi, comentarte, a mi me daba un error de este tipo cuando intentaba hacer una XMLHttpRequest POST a un web service SOAP desde Chrome, no asi desde Microsoft Explorer, intentando conectar al web service desde Javascript, días después pude integrar el cliente Soap desde PHP y no surgió más el problema.

Saludos, muy bueno el blog!

    parzibyte · octubre 1, 2021 a las 11:35 pm

    Me agrada saber que haya funcionado. Gracias por su aporte.
    Saludos y éxito!

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: