javascript - refused - Chrome se niega a ejecutar un script AJAX debido a un tipo MIME incorrecto
script type= text/javascript src= (6)
Al agregar un argumento de devolución de llamada, le está diciendo a jQuery que desea realizar una solicitud de JSONP utilizando un elemento de script en lugar de una solicitud de JSON utilizando XMLHttpRequest.
JSONP no es JSON. Es un programa de JavaScript.
Cambie su servidor para que emita el tipo MIME correcto para JSONP que es application/javascript
.
(Mientras lo hace, deje de decirle a jQuery que espera JSON porque es contradictorio: dataType: ''jsonp''
).
Intento acceder a un script como JSON a través de AJAX, que funciona bien en Safari y otros navegadores, pero desafortunadamente no se ejecutará en Chrome. Viene con el siguiente error:
Se negó a ejecutar el script desde ''*'' porque su tipo MIME (''application / json'') no es ejecutable y está habilitada la verificación estricta del tipo MIME.
Aquí está la solicitud:
$.ajax({
url: "http://some_url/test.json?callback=?",
type: "GET",
dataType: ''json'',
cache: true,
success: function (data, status, error) {
console.log(''success'', data);
},
error: function (data, status, error) {
console.log(''error'', data, status, error);
}
});
¿Alguien tiene una solución para esto?
En mi caso, yo uso
$.getJSON(url, function(json) { ... });
para hacer la solicitud (a la API de Flickr), y obtuve el mismo error MIME. Como la respuesta anterior sugerida, agregando el siguiente código:
$.ajaxSetup({ dataType: "jsonp" });
Solucionado el problema y ya no veo el error de tipo MIME en la consola de Chrome.
Encontré este error al usar IIS 7.0 con una página de error 404 personalizada, aunque sospecho que esto sucederá con cualquier página 404. El servidor devolvió una respuesta html 404 con un tipo de texto / html mime que no se pudo (correctamente) ejecutar.
FYI, tengo el mismo error de la consola de Chrome. Creí que mi función AJAX lo causaba, pero sin comentar mi secuencia de comandos /javascripts/ajax-vanilla.min.js
desde /javascripts/ajax-vanilla.min.js
a /javascripts/ajax-vanilla.js
. Pero en realidad el archivo fuente estaba en /javascripts/src/ajax-vanilla.js
. Por lo tanto, en Chrome obtendrás un error tipo MIME incorrecto incluso si no se puede encontrar el archivo. En este caso, el mensaje de error se describe como text/plain
bad MIME type.
Si su servidor o contenedor proxy agrega el siguiente encabezado cuando sirve el archivo .js, obligará a algunos navegadores como Chrome a realizar una verificación estricta de los tipos MIME:
X-Content-Type-Options: nosniff
Elimine este encabezado para evitar que Chrome realice la verificación MIME.
Para el registro y los usuarios de búsqueda de Google , si usted es un desarrollador de .NET Core, debe establecer los tipos de contenido manualmente, porque su valor predeterminado es nulo o vacío:
var provider = new FileExtensionContentTypeProvider();
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = provider
});