Estoy tratando de 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 la verificación estricta del tipo MIME está habilitada.
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?
javascript
jquery
ajax
json
google-chrome
Paul Nelligan
fuente
fuente
Respuestas:
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 muestre el tipo MIME correcto para JSONP, que es
application/javascript
.(Mientras estás en ello, deja de decirle a jQuery que esperas que JSON sea contradictorio:)
dataType: 'jsonp'
.fuente
Si su servidor proxy o contenedor agrega el siguiente encabezado al servir el archivo .js, obligará a algunos navegadores como Chrome a realizar una comprobación estricta de los tipos MIME:
Elimine este encabezado para evitar que Chrome realice la verificación MIME.
fuente
X-Content-Type-Options: nosniff
encabezado) es una buena opción para evitar ataques de detección de contenido.FYI, tengo el mismo error de la consola de Chrome. Pensé que mi función AJAX lo causaba, pero descomenté mi script minified de
/javascripts/ajax-vanilla.min.js
a/javascripts/ajax-vanilla.js
. Pero en realidad el archivo fuente estaba en/javascripts/src/ajax-vanilla.js
. Entonces, en Chrome, obtienes un error de tipo MIME incorrecto incluso si no se puede encontrar el archivo. En este caso, el mensaje de error se describe comotext/plain
un tipo MIME incorrecto.fuente
Encontré este error usando 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 text / html mime que no se pudo ejecutar (correctamente).
fuente
Para el registro y los usuarios de búsqueda de Google , si es un desarrollador de .NET Core, debe configurar los tipos de contenido manualmente, porque su valor predeterminado es nulo o vacío:
fuente
En mi caso, yo uso
para hacer la solicitud (a la API de Flickr), y obtuve el mismo error MIME. Como sugiere la respuesta anterior, agregue el siguiente código:
Se solucionó el problema y ya no veo el error de tipo MIME en la consola de Chrome.
fuente
Si la aplicación está alojada en IIS, asegúrese de que el Contenido estático esté instalado. Panel de control> Programas> Activar o desactivar las funciones de Windows> Servicios de información de Internet> Servicios de la World Wide Web> Funciones HTTP comunes> Contenido estático.
Me enfrenté a este problema al intentar ejecutar una aplicación existente en una nueva instalación de IIS 10.0
fuente