link google domain debugger cross corss chrome javascript ajax google-chrome

javascript - domain - Google Chrome bloquea las solicitudes ajax cuando se abre la vista previa de impresiĆ³n en la ventana secundaria



xmlhttprequest cors (5)

Tuve un problema similar con Chrome: debido a la política de seguridad, no puede acceder a los archivos locales. Cuando estoy haciendo una llamada AJAX obtengo este error

XMLHttpRequest cannot load file:///*. Origin null is not allowed by Access-Control-Allow-Origin.

Por lo que sé, deberías ejecutar Chrome con params:

--allow-file-access-from-files

Espero eso ayude.

Hay 2 archivos: index.html e print.html

El primero contiene un botón que abre print.html usando un comando simple:

window.open("print.html", "_blank", "menubar=yes,toolbar=yes,status,scrollbars,resizable");

print.html contiene solo un botón que abre el cuadro de diálogo de vista previa de impresión:

<button onclick="window.print();">

El problema aparece cuando se abre el cuadro de diálogo de vista previa de impresión. En este caso, cualquier acción en index.html , es decir, el otro archivo que inicia la solicitud ajax, se bloquea temporalmente y se coloca en la cola. Y solo cuando la vista previa se cierra el navegador dispara todas las solicitudes.

Solo puedo verlo en Google Chrome (24.0.1312.52 m).

¿Alguien puede confirmar que este es el error de Chrome?


Crea un archivo .bat , escribe las siguientes líneas. La 1.ª línea es la ruta de su aplicación de Chrome y luego la abre. Ahora puedes verificar con este Chrome.

cd "C:/Program Files (x86)/Google/Chrome/Application" chrome --allow-file-access-from-files --disable-web-security


Su servidor no agregó encabezados de ORIGEN. Necesita agregarlo en .htaccess. Por ejemplo:

Header add Access-Control-Allow-Origin "*" Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"

O puede agregarlo en PHP en print.html (si puede usar PHP en archivos html)

header ("Access-Control-Allow-Origin: *"); header ("Access-Control-Allow-Headers: origin, x-requested-with, content-type"); header ("Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS");


hay un error de Chrome donde window.print() no funciona cuando hay una etiqueta en el DOM. Podría resolverse llamando a esta función:

function printPage() { window.print(); //workaround for Chrome bug - https://code.google.com/p/chromium/issues/detail?id=141633 if (window.stop) { location.reload(); //triggering unload (e.g. reloading the page) makes the print dialog appear window.stop(); //immediately stop reloading } return false; }


Necesita instalar mod_headers en Apache y configurarlo en .htaccess

Header add Access-Control-Allow-Origin "*"