En FF y todo, mi javascript funciona bien. Pero en Chrome da este mensaje:
Recurso interpretado como script pero transferido con texto tipo MIME / sin formato.
He revisado todas las etiquetas de script y todas tienen el MIME type="text/javascript"
. Incluso lo dice con jquery y jquery ui. ¿Qué le pasa a Chrome?
¿Cuál es el problema y la solución para esto? ¿Es algo que tengo que cambiar en las 'opciones' del navegador o es desde el servidor o tengo que modificar mi código?
google-chrome
mime-types
Shaoz
fuente
fuente
Respuestas:
Significa que el servidor está enviando una respuesta HTTP Javascript con
Debe configurar el servidor para enviar una respuesta de JavaScript con
fuente
content-type:application/javascript
embargo, debería ser , noapplication/x-javascript
es un estándar RFC o ECMAScript.Esto no tiene nada que ver con jQuery o cualquier peculiaridad del código de script del lado del cliente. Es un problema del lado del servidor : el servidor (aplicación del lado) no envía el valor esperado del
Content-Type
campo de encabezado HTTP para el recurso de script del lado del cliente. Esto sucede si el servidor web no está configurado adecuadamente, está mal configurado o si una aplicación del lado del servidor (por ejemplo, PHP) está generando el recurso de script del lado del cliente.Los tipos de medios MIME adecuados para implementaciones de ECMAScript como JavaScript incluyen:
text/javascript
(registrado como obsoleto , no en desuso, pero aún válido y mejor soportado )text/ecmascript
(registrado como obsoleto , no en desuso, pero aún válido )application/javascript
application/ecmascript
Ellos no son
application/x-javascript
, como los tipos de medios MIME mencionados anteriormente son los registrados en el árbol de normas por ahora (lo que no hay necesidad, y no debe haber ninguna necesidad, utilizar los experimentales más). Cf. RFC 4329, "Tipos de medios de secuencias de comandos" (2005 CE) y mi caso de prueba: Soporte para tipos de medios de secuencias de comandos .Una solución es configurar el servidor si es posible, como ya se recomienda. Para Apache, esto puede ser tan simple como agregar la directiva
(Consulte la documentación del Servidor Apache HTTP para más detalles).
Pero si el recurso de script del lado del cliente es generado por una aplicación del lado del servidor, como PHP, entonces es necesario establecer el
Content-Type
valor del campo de encabezado explícitamente, ya que es probable que el valor predeterminado seatext/html
:(Esa y otras declaraciones similares deben aparecer antes que cualquier otra salida; consulte el manual de PHP ; de lo contrario, se considera que el cuerpo del mensaje HTTP ya ha comenzado y es demasiado tarde para enviar más campos de encabezado).
La generación del lado del servidor puede pasar fácilmente a un recurso de secuencia de comandos del lado del cliente, incluso si tiene archivos .js simples en el servidor, si los comentarios se eliminan a medida que se sirven, si todos se empaquetan en una gran respuesta (para reducir el número de solicitudes, que pueden ser más eficientes), o la aplicación del lado del servidor las minimiza de cualquier otra manera.
fuente
text/javascript
másapplication/javascript
. Si tiene razones para creer que esaapplication/javascript
es la mejor respuesta ahora, entonces lo menos que debe hacer es explicarse en un comentario. Es inapropiado que requiera el mecanismo de notificación de Stack Overflow para que me dé cuenta de sus cambios. He revertido sus cambios, que llamo falsificación , a las respuestas a esta pregunta donde las considero inapropiadas.Para servidores de aplicaciones Java como Weblogic
1) Asegúrese de que su archivo weblogic.xml esté libre de errores
como éste:
2) Agregue un tipo mime para javascript a su archivo web.xml :
Esto también funcionará para otros contenedores Java: Tomcat, etc.
application/javascript
es actualmente el único tipo mime válido; otros comotext/javascript
han quedado en desuso.3) Es posible que deba limpiar el caché del navegador o presionar CTRL-F5
fuente
Tuve este problema y descubrí cómo solucionarlo.
Ocurre cuando el archivo de estilo (CSS) está en una codificación diferente del archivo PHP que hace referencia al archivo .css
Por ejemplo, usar jQuery.js en la codificación Unix y usar index.php en UTF-8 causará este problema, por lo que debe convertirlos en UTF-8 o en cualquier otra codificación siempre que sea igual.
fuente
Si está generando su javascript con un archivo php, agregue esto como el comienzo de su archivo:
fuente
En su httpd.conf de apache, simplemente agregue una línea de este tipo:
fuente
Recibí este mensaje de depuración por una razón más tonta que las otras respuestas aquí: este es el mensaje de error recibido cuando no duermes lo suficiente y haces referencia a un archivo js utilizando la sintaxis para un archivo css. Como en,
más bien que
Pensé en poner esto aquí porque esta es la primera publicación que aparece al buscar el mensaje de error.
fuente
Problema extraño, pero esto me ayudó a resolver mi problema. A veces, incluso las cosas más fáciles son difíciles de entender ...
En lugar de usar
/js/main.css
en mi etiqueta de script, uséjs/main.css
SÍ , en realidad marcó la diferencia. Estoy sentado en WAMP / Windows y no tenía un vhost pero solo lo usé
localhost/<project>
Si me refiero a
/js/main.css
, me refierolocalhost/css/main.css
y no alocalhost/<project>/css/main.css
Cuando lo piensas, es bastante obvio, pero si alguien se topa con esto, creo que compartiría esta respuesta.
fuente
Verifique que sus archivos js realmente existan en el servidor. Tuve este problema y descubrí que los archivos js no se habían subido al servidor y el servidor en realidad estaba devolviendo la página html, que era el documento predeterminado configurado en el servidor (por ejemplo, default.html)
fuente
Si estás trabajando en Joomla! y obteniendo este molesto error al intentar incluir un
.js
archivo ( ) de JavaScript, entonces la siguiente solución es para usted.El problema más probable es que está intentando incluir un
.js
archivo que no está allí , o simplemente lo extravió.js
, y cuando Joomla! no encuentra un recurso, luego, en lugar del mensaje 404 genérico, devuelve un mensaje 404 completo con una página web completa y html, etc.El navegador web lo interpreta como si fuera
.js
solo una página web que dice que no se encontró el archivo requerido .Esto puede funcionar para joomla2.5joomla3.0joomla3.1joomla3.2joomla3.3joomla
fuente
Para mí, solo sucedió en algunas páginas porque usé en
window.location
lugar de$location.url(...);
Esto solucionó mi problema. Tomó un tiempo darse cuenta :)fuente
Tuve este problema al usar un marco web y lo solucioné moviendo los archivos de JavaScript relevantes a la carpeta de JavaScript designada (por el marco).
fuente
Una cosa común cuando esto sucede es si simplemente ha olvidado incluirlo
type
en sus llamadas de guión. Tendrá que configurarlo explícitamente, ya que es, según W3 , requerido :Aún así parece que los navegadores tienen un valor predeterminado de
plain/text
.Ejemplo:
También podría establecer un valor predeterminado para esa extensión de archivo en su configuración de Apache:
fuente
Si es IIS, asegúrese de que debajo de
common HTTP Features
usted hayaStatic Content
activadofuente
Tuve el mismo error y finalmente (en mi caso particular) encontré un problema en el descriptor de implementación (web.xml)
El problema:
la solución:
fuente
Si está utilizando Spring MVC, puede agregar la siguiente etiqueta mvn para excluir el archivo de recursos del Servlet de envío de Spring
fuente
En mi caso, el servidor estaba enviando el correcto
Content-Type
pero con un incorrectoContent-Encoding
. Asegúrese de configurar solo losContent-Encoding: gzip
recursos comprimidos. Además, después de arreglar los encabezados en el servidor (en mi caso, Google Cloud Storage), tuve que esperar unos minutos para reflejar adecuadamente los cambios debidos al almacenamiento en caché.fuente
Si está utilizando AdonisJS (API REST, por ejemplo), una forma de evitar esto es definir el encabezado de respuesta de esta manera:
fuente
Estaba teniendo el mismo problema al intentar cambiar las imágenes de fondo en una matriz a través de javascript (jQuery en este caso).
De todas formas.
En lugar de esto:
hacer esto:
JavaScript de Chrome se atornilla al intentar analizar una variable dentro de un elemento estructurado con '. En mi caso, se detuvo justo antes de insertar la matriz de imágenes. En lugar de analizar la url de la imagen + el nombre de la imagen (dentro de la matriz), estaba analizando solo la url de la imagen.
Probablemente necesite buscar dentro del código y ver dónde sucede. FF, IE y todos los demás no tienen este problema.
fuente
eval
si puede ayudarlo: javascripttoolbox.com/bestpractices/#evalLa respuesta publicada aquí por Simon-Sarris me ayudó.
No olvide reiniciar su sistema después de los cambios.
fuente