Recurso interpretado como script pero transferido con texto de tipo MIME / plano - para archivo local

97

Recibo una advertencia de "Recurso interpretado como secuencia de comandos pero transferido con texto de tipo MIME / sin formato" en Google Chrome al incluir un archivo de secuencia de comandos local.

Sé que el problema aparece al cargar un archivo desde un servidor oa través de ajax, que a menudo depende de la configuración de encabezados incorrectos.

Lo extraño es que recibo esta advertencia a pesar de que se ejecuta desde una carpeta local: file:///C:/test/foo.html

Esto sucede solo en Chrome con el html más básico que existe:

<!DOCTYPE html>
    <html>
    <head>
        <script type="text/javascript" src="bar.js"></script>
    </head>
    <body>
    </body>
</html>

bar.js también es tan simple como puede ser:

function hello() {}

Intenté agregar una metaetiqueta:

<meta http-equiv="content-script-type" content="text/javascript">

y probado con otros doctypes, pero nada parece ayudar.

Obviamente, esto no es un problema real ya que los scripts aún funcionan bien, pero estoy trabajando en un proyecto grande y actualmente tengo alrededor de 150 scripts incluidos. Por lo tanto, dificulta ver cuándo ocurre una advertencia real entre ellos.

Todo funciona bien cuando ejecuto el archivo en un servidor, local o remoto.

¿Alguna idea de por qué Chrome me molesta con esto?

batzkoo
fuente
No instaló la última versión de Visual Studio el otro día, ¿verdad? Esto me empezó a pasar y eso es lo único que cambió ...
Simon Sarris
sí, VS Express 2012 RC hace unas semanas. También pensé en eso, así que creé los archivos con notepad ++ en su lugar, pero el problema sigue siendo el mismo. Si VS está causando esto, ¿deben haber cambiado alguna configuración / parámetro global? La pregunta es qué y cómo lo cambio de nuevo.
batzkoo
Todavía estoy tratando de averiguar lo mismo. Parece ser algo global y sucedió precisamente después de que instalé VS2012. Te haré saber si averiguo algo. Para ser claros, en realidad no uso Visual Studio para la edición de archivos, lo que lo hace más extraño.
Simon Sarris

Respuestas:

195

¡Me lo imaginé!

El instalador de Visual Studio debe haber agregado una línea errante al registro.

abre regedity echa un vistazo a esta clave de registro:

ingrese la descripción de la imagen aquí

¿Ves esa llave? ¿La clave de tipo de contenido?cambie su valor de texto / plano a texto / javascript.

Finalmente, el cromo puede volver a respirar tranquilo.

Debo señalar que ni Content Type ni PercievedType están ahí de forma predeterminada en Windows 7, por lo que probablemente podría eliminarlos de forma segura, pero lo mínimo que debe hacer es editar.

De todos modos, ¡espero que esto también lo solucione para ti!

Simón Sarris
fuente
8
¡Bien hecho! por encontrar la solución a esta molestia. No eliminé la clave, sino que cambié el valor de los datos a texto / javascript. ¡Gracias!
batzkoo
jaja, lo cambié a texto / script y no funcionó, ¡tal vez debería haber probado texto / javascript!
Simon Sarris
¡Gracias por la solución! Tuve el mismo problema ... En realidad, con el tipo MIME plano / texto para mí, el código javascript arrojaba errores. Tenía algunas cadenas (en una matriz) que contenían letras que se encuentran en la codificación UTF-8 que se ven en los lenguajes del este de Europa como "ő". "Gergő" es un bonito nombre común en Hungría. Los errores también se han ido gracias a Dios, ya que no pude ejecutar mi código, pero no investigué esto más.
Zoltan
2
Vaya, ¿cómo descubrió esta solución?
Pakman
4
@Pakman Tuve el problema un día, luego compré una computadora nueva y no tuve el problema. Luego, cuando instalé Visual Studio 2012, noté que reaparecía, así que pensé que era el culpable. Supuse que había cambiado algo en las asociaciones de archivos del registro porque todos mis .jsarchivos tenían .txticonos de aspecto, así que fui a asegurarme de que estuvieran asociados con el tipo de datos correcto. ¡No lo estaban!
Simon Sarris
30

Intenté solucionar este problema con este método, pero no funcionó para mí.

Mi problema fue que el administrador de IIS no tenía tipos MIME en las funciones HTTP.

Pude encenderlo habilitando Contexto estático a través de ...

-> Panel de control

-> Programas

-> Activar o desactivar las funciones de Windows

-> Servicios de información de Internet

-> Servicios World Wide Web

-> Funciones HTTP comunes

-> [X] Contenido estático.

Después de esto, aparecieron los tipos MIME y todo comenzó a funcionar nuevamente.

usuario2383049
fuente
0

¡La respuesta aceptada es excelente! Sin embargo, solo para publicar una respuesta para aquellos que encuentran problemas como yo, que a veces usan una computadora del departamento / universidad, donde no tengo permiso para cambiar ningún valor clave en regedit.

Cambio

<script type="text/javascript" src="main.js"></script>

a

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

Aunque el mensaje de error aún existe, la página se cargó correctamente.

Richard Wong
fuente
2
Pero el problema de OP es que la página se carga correctamente, pero aún recibe un mensaje de error. Esto no parece cambiar nada.
Teepeemm