¿Se negó a ejecutar el script, la verificación estricta del tipo MIME está habilitada?

Respuestas:

58

Tiene un <script>elemento que está intentando cargar JavaScript externo.

La URL que le ha proporcionado apunta a un archivo JSON y no a un programa JavaScript.

El servidor informa correctamente que es JSON, por lo que el navegador está abortando con ese mensaje de error en lugar de intentar ejecutar JSON como JavaScript (lo que arrojaría un error).


Lo más probable es que la razón subyacente de esto sea que está tratando de realizar una solicitud Ajax, ha encontrado un error de origen cruzado y ha intentado solucionarlo diciéndole a jQuery que está utilizando JSONP. Esto solo funciona si la URL proporciona JSONP (que es un subconjunto diferente de JavaScript), que este no.

Sin callback=the_name_of_your_callback_functionembargo, la misma URL con el parámetro de cadena de consulta adicional devuelve JavaScript.

Quentin
fuente
4
ahora he dado esto y corrige el error <script id = "data" type = "application / json"
rob.m
2
type="application/json"- Ahora el navegador sabe que no está intentando cargar JavaScript, por lo que ignora el elemento del script por completo.
Quentin
58

En mi caso, no se encontró un archivo, escribí incorrectamente la ruta al archivo javascript.

mruanova
fuente
8
Lo mismo. La ruta incorrecta da como resultado alguna respuesta de error de página html, que a su vez causa este mensaje de error confuso.
Gil Roitto
2
Respuesta genial. Gracias :)
Anjana Silva
21

Este resultado es el primero que aparece en Google y es más amplio que lo que está sucediendo aquí. Lo siguiente se aplicará a un servidor express :

Estaba intentando acceder a recursos desde una carpeta anidada.

Por dentro index.htmltenía

<script src="./script.js"></script>

La ruta estática se montó en:

app.use(express.static(__dirname));

Pero script.jsse encuentra en la carpeta anidada como en: js/myStaticApp/script.js se negó a ejecutar el script, la verificación del tipo de meme está habilitada. Acabo de cambiar la ruta estática a:

app.use(express.static(path.join(__dirname, "js")));

Ahora funciona :)

AIon
fuente
6

Intenta usar express.static () si está usando Node.js.

Simplemente debe pasar el nombre del directorio donde guarda sus activos estáticos al middleware express.static para comenzar a entregar los archivos directamente. Por ejemplo, si mantiene sus imágenes, CSS y archivos JavaScript en un directorio llamado público, puede hacer lo siguiente:

es decir: app.use (express.static ('public'));

Este enfoque resolvió mi problema.

Gracias,

Nimesh
fuente
Puede que no sea la respuesta correcta a esta pregunta específica, pero fue la solución a mi problema. ¡Gracias!
mcheah
2

Accidentalmente nombré el archivo js en .minlugar de .min.js...

OZZIE
fuente
1

Matraz de Python

En Windows , utiliza datos del registro, por lo que si el valor "Tipo de contenido" en HKCR / .js no está configurado en el tipo MIME adecuado, puede causar su problema.

Abra regedit y vaya a HKEY_CLASSES_ROOT asegúrese de que la clave .js / Content Type tenga el valor text / javascript

C:\>reg query HKCR\.js /v "Content Type"

HKEY_CLASSES_ROOT\.js
    Content Type    REG_SZ    text/javascript
Devandran
fuente
1

Después de buscar un rato, me di cuenta de que este error en mi Windows 10 de 64 bits estaba relacionado con JavaScript. Para ver esto, vaya a DevTools de su navegador y confírmelo primero. En mi caso, muestra un error como "el tipo MIME ('aplicación / javascript') no es ejecutable".

Si ese es el caso, he encontrado una solución. Aquí está el trato:

  1. Usuario prestado "ilango100" en https://github.com/jupyterlab/jupyterlab/issues/6098 :

Tuve exactamente el mismo problema hace un tiempo. Creo que este problema es específico de Windows. Se debe a que se ha configurado un tipo MIME incorrecto en el registro de Windows para archivos javascript. Resolví el problema editando el registro de Windows con el tipo de contenido correcto:

regedit -> HKEY_LOCAL_MACHINE \ Software \ Classes -> Verá muchas carpetas para cada extensión de archivo -> Simplemente desplácese hacia abajo hasta el registro ".js" y selecciónelo -> A la derecha, si el valor "Tipo de contenido" es diferente a application / javascript, entonces esto está causando el problema. Haga clic derecho en Tipo de contenido y cambie el valor a aplicación / javascript

ingrese la descripción de la imagen aquí

Vuelve a intentarlo en el navegador ".

Después de eso, me di cuenta de que el error cambia. Ya ni siquiera se abre automáticamente en el navegador. Sin embargo, PGAdmin estará abierto en la barra lateral (cerca del calendario / reloj). Al intentar abrir directamente en el navegador ("Nueva ventana de PGAdmin 4 ...") tampoco funciona.

SOLUCIÓN FINAL: haga clic en "Copiar URL del servidor" y péguelo en su navegador. ¡Funcionó para mí!

araujo.jpc
fuente
0

Agregue el fragmento de código como se muestra a continuación a la entrada html. es decir, "index.html" en reactjs

<div id="wrapper"></div>
<base href="/" />

Oseni Adefemi
fuente
1
Agradecería mucho una explicación de por qué es útil.
Juan Lanus
-1

Si tiene una ruta en expreso como:

app.get("*", (req, res) => {
  ...
});

Intenta cambiarlo por algo más específico:

app.get("/", (req, res) => {
  ...
});

Por ejemplo.

De lo contrario, podría encontrarse sirviendo de forma recursiva la misma plantilla HTML una y otra vez ...

Ariel
fuente
-1

Tuve el mismo problema y luego lo arreglé así

change "text/javascript"

a

type="application/json"
MH Fuad
fuente
2
Eso impide que el navegador solicite la URL en primer lugar y hace scriptque la presencia del elemento en el documento sea completamente inútil.
Quentin
-1

En mi caso, tenía un enlace simbólico para el archivo 404 y mi Tomcat no estaba configurado para permitir enlaces simbólicos.

Sé que no es probable que sea la causa para la mayoría de las personas, pero si está desesperado, verifique esta posibilidad por si acaso.

s1m3n
fuente
-2

Tuve el mismo problema y el problema fue que me faltaba una barra en mi camino.

yo tenía

y para solucionarlo, solo necesitaba agregar la barra entre jquery-ui y jquery-ui.min:

  <script type="text/javascript" src="js/jquery-ui/jquery-ui.min.js"></script>

espero que esto ayude: D

Tom Hoffmann V.
fuente
-12

Resolví mi problema agregando solo $ {pageContext.request.contextPath} a mi ruta jsp. en lugar de :

 <script    src="static/js/jquery-3.2.1.min.js"></script>

Lo puse :

 <script    src="${pageContext.request.contextPath}/static/js/jquery-3.2.1.min.js"></script>
Yassine Bsf
fuente