286 votos

Chrome dice : "el Recurso interpretado como script sino que se transfieren con el tipo MIME text/plain.", ¿por qué?

En FF y todos, mi javascript funciona bien. Pero en Chrome, el navegador da este mensaje: Resource interpreted as script but transferred with MIME type text/plain.

He comprobado todas las etiquetas de secuencia de comandos y todos ellos tienen la MIME type="text/javascript". Incluso lo dice con jquery y jquery ui. Lo que está mal con Chrome?

¿Cuál es el problema y la solución para esto? Es algo que tengo que cambiar en las opciones del navegador o desde el servidor, o tengo que modificar mi código?

182voto

SLaks Puntos 391154

Esto significa que el servidor envía una respuesta HTTP con Javascript

Content-Type: text/plain

Usted tiene que configurar el servidor para enviar una respuesta con JavaScript

Content-Type: application/javascript

119voto

PointedEars Puntos 4933

Esta tiene nada que ver con jQuery o cualquier capricho de la secuencia de comandos de cliente código. Se trata de un server-side problema: El servidor(aplicación) no está enviando la espera HTTP Content-Type campo de encabezado de valor para el script del lado del cliente de los recursos. Esto sucede si el servidor Web no está suficientemente configurado, mal configurado, o una aplicación de servidor (de correo. g., PHP) es la generación de la secuencia de comandos de cliente de los recursos.

MIME adecuado tipos de medios para implementaciones ECMAScript como JavaScript incluyen:

  • text/javascript (registrado como obsoletos, no en desuso; pero todavía válida, y apoyada mejor)
  • text/ecmascript (registrado como obsoletos, no en desuso; pero todavía válida)
  • application/javascript
  • application/ecmascript

Ellos no incluya application/x-javascript, como MIME los tipos de medios enumerados anteriormente son los registrados en el árbol de estándares por ahora (lo que no es necesario, y no debe haber ningún desea, utilizar los experimentales). Cf. RFC 4329, secuencias de comandos "Tipos de Medios" (2005 CE) y en mi Caso de Prueba: el Soporte para Scripting Tipos de Medios.

Una solución es configurar el servidor, si es posible, como ya se ha recomendado. Para Apache, esto puede ser tan simple como añadir la directiva

AddType text/javascript .js

(véase el Servidor HTTP Apache de la documentación para más detalles).

Pero si el script del lado del cliente de los recursos generados por una aplicación de servidor, como PHP, entonces es necesario establecer el Content-Type campo de encabezado de valor de forma explícita, como el valor predeterminado es probable text/html:

<?php
  header('Content-Type: text/javascript; charset=UTF-8');
  // ...
?>

(Y declaraciones similares debe anteponerse a cualquier otra de salida - ver el manual de PHP -, de lo contrario el mensaje HTTP cuerpo se considera que han comenzado ya, y ya es demasiado tarde para enviar a más campos de encabezado.)

En el lado del servidor generación puede pasar fácilmente a un script del lado del cliente de los recursos, incluso si usted tiene la llanura .js archivos en el servidor, si los comentarios son eliminadas de ellos como ellos se sirven, si están todos juntos en una gran respuesta (para reducir el número de solicitudes, que es más eficiente), o que son minimizados por el lado del servidor de la aplicación de cualquier otra manera.

17voto

egallardo Puntos 388

1) asegúrese de que su weblogic.xml el archivo está libre de errores

como este:

    <?xml version = '1.0' encoding = 'windows-1252'?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
                  xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    <context-root>MyWebApp</context-root>
</weblogic-web-app>

2) Agregar un tipo mime para javascript de su web.xml archivo:

    ...
        </servlet-mapping>

        <mime-mapping>    
            <extension>js</extension>        
            <mime-type>application/javascript</mime-type>        
        </mime-mapping>

        <welcome-file-list>
    ...

application/javascript es actualmente el único válido mime-type; otros como text/javascript han sido censurados

3) puede que tenga Que borrar la caché del navegador o pulsa CTRL-F5

8voto

mopsyd Puntos 266

Si eres de generar el javascript con un archivo php, añadir esto como el principio de tu archivo:

<?php Header("Content-Type: application/x-javascript; charset=UTF-8"); ?>

5voto

mak Puntos 51

He tenido este problema y me di cuenta de cómo solucionarlo.

Esto ocurre cuando el estilo (CSS) archivo está en una codificación diferente desde el archivo PHP que hace referencia el archivo .css

Por ejemplo, el uso de jQuery.js en Unix, la codificación y el uso index.php en UTF-8 va a causar este problema, por lo que tienen que hacer ellos, tanto en UTF-8 o cualquier otra codificación como el tiempo de la misma.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X