type supported style script refused refuse plain not its from error enabled checking because application and javascript jquery angularjs google-chrome

javascript - supported - Deshabilitar el control de tipo MIME estricto de Chrome



refuse to apply style mime type angular (4)

¿Hay alguna forma de deshabilitar strict MIME type checking en Chrome?

De hecho, estoy haciendo una solicitud JSONP en dominios cruzados. Está funcionando bien en Firefox pero, mientras usa Chrome, da un error en la consola.

Se negó a ejecutar el script desde '' https://example.com '' porque su tipo MIME (''text / plain'') no es ejecutable, y la verificación estricta del tipo MIME está habilitada.

Funciona perfectamente en Mozilla. El problema surge solo en Chrome

Aquí están los encabezados de respuesta de la solicitud ..

Cache-Control:no-cache, no-store Connection:Keep-Alive Content-Length:29303 Content-Type:text/plain;charset=ISO-8859-1 Date: xxxx Expires:-1 Keep-Alive:timeout=5 max-age:Thu, 01 Jan 1970 00:00:00 GMT pragma:no-cache Set-Cookie:xxxx Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options:nosniff X-Frame-Options:SAMEORIGIN

Solución temporal de lo que pienso : configuración externa del tipo de contenido a la application/javascript


Otra solución cuando un archivo pretende otra extensión

Yo uso php dentro del archivo var.js con este .htaccess .

<Files var.js> AddType application/x-httpd-php .js </Files>

Luego escribo el código php en el archivo .js

<?php // This is a `.js` file but works with php echo "var js_variable = ''$php_variable'';";

Cuando recibí la advertencia de tipo MIME en Chrome, lo solucioné agregando una línea de encabezado de Content-Type en el archivo .js(but php) .

<?php header(''Content-Type: application/javascript''); // <- Add this line // This is a `.js` file but works with php ...

Un navegador no ejecutará el archivo .js porque apache envía el encabezado Content-Type del archivo como application/x-httpd-php que está definido en .htaccess . Esa es una razón de seguridad. Pero apache no ejecutará php en la medida en que htaccess la suplantación, es necesario. Por lo tanto, debemos sobrescribir el encabezado Content-Type Apache con el encabezado de la función php header() . Supongo que apache deja de enviar su propio encabezado cuando lo envía php en lugar de apache.


El servidor debe responder con el tipo MIME correcto para la application/javascript JSONP application/javascript y tu solicitud debería indicarle a jQuery que estás cargando JSONP dataType: ''jsonp''

Por favor, mira esta respuesta para más detalles! También puedes echarle un vistazo a este ya que explica por qué no funciona cargar el archivo .js con text/plain .


En mi caso, apagué X-Content-Type-Options en nginx luego funciona bien.

# Not work add_header X-Content-Type-Options nosniff; # OK (comment out) #add_header X-Content-Type-Options nosniff;

Será lo mismo para apache.

<IfModule mod_headers.c> #Header set X-Content-Type-Options nosniff </IfModule>


también tuvo el mismo problema una vez,

si no puede resolver el problema, puede ejecutar el siguiente comando en la línea de comando
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security

Nota: debe navegar hasta la ruta de instalación de su Chrome.
Por ejemplo: cd C:/Program Files/Google/Chrome/Application

Se abrirá un navegador chrome de la sesión del desarrollador, ahora puede iniciar su aplicación en el nuevo navegador Chrome.
Espero que esto sea útil