Pregunta Deshabilitar el control de tipo MIME estricto de Chrome


¿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 de lo que pienso : Configuración externa de tipo de contenido a application/javascript 


28
2017-08-30 13:19


origen


Respuestas:


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

Por favor mira esta respuesta para mas detalles ! Tú también puedes echar un vistazo a éste como explica por qué cargar .js archivo con text/plain no funcionará


9
2017-08-30 13:29



En mi caso, apagué X-Content-Type-Options en nginx entonces 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>

3
2017-11-17 06:53



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


1
2018-04-04 17:14



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

yo suelo php dentro de var.js archivo con esto .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í el aviso de tipo MIME en Chrome, lo solucioné añadiendo un Content-Type línea de encabezado en el .js(but php) archivo.

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

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


-1
2018-04-10 01:29