Según la pregunta, el código jQuery no funciona en IE , text/javascriptse usa en documentos HTML para que Internet Explorer pueda entenderlo.
Pero me pregunto cuándo lo usarías application/javascripty, lo que es más importante, ¿por qué lo usarías en lugar de text/javascript?
javascript
mime-types
Mark Baijens
fuente
fuente

Respuestas:
En teoría, de acuerdo con RFC 4329 ,
application/javascript.La razón por la que se supone que
applicationes no tiene nada que ver con si el tipo es legible o ejecutable. Es porque existen mecanismos personalizados de determinación de caracteres establecidos por el lenguaje / tipo en sí, en lugar de solo elcharsetparámetro genérico . Un subtipo detextdebe ser capaz de ser transcodificado por un proxy a otro conjunto de caracteres, cambiando el parámetro del conjunto de caracteres. Esto no es cierto para JavaScript porque:a. el RFC dice que los agentes de usuario deberían estar haciendo BOM-sniffing en el script para determinar el tipo (aunque no estoy seguro si algún navegador realmente hace esto);
si. los navegadores usan otra información (la codificación de la página incluida y en algunos navegadores el
script charsetatributo) para determinar el conjunto de caracteres. Por lo tanto, cualquier proxy que intentara transcodificar el recurso rompería a sus usuarios. (Por supuesto, en realidad nadie usa transcodificadores de todos modos, pero esa era la intención).Por lo tanto, los bytes exactos del archivo deben conservarse exactamente , lo que lo convierte en un
applicationtipo binario y no técnicamente basado en caracterestext.Por la misma razón,
application/xmlse prefiere oficialmente sobretext/xml: XML tiene sus propios mecanismos de señalización de juego de caracteres en banda. Y todos ignoran también elapplicationXML.text/javascriptytext/xmlpuede que no sea la Cosa correcta oficial, pero hay lo que todos usan hoy por razones de compatibilidad, y las razones por las que no son lo correcto prácticamente no tienen importancia.fuente
application/javascripty IE se ejecuta en modo de compatibilidad conIE=8. Parece que las secuencias de comandos en línea no se evalúan correctamente.text/javascriptfunciona bien allí.X-Content-Type-Options: nosniffpara evitar que el navegador interprete el tipo.Server: nginxo lo que sea que nginx envíe. Como si quien fuera capaz de encontrar un agujero necesita un encabezado explícito para saber qué servidor ejecuta ...El problema con el tipo MIME de Javascript es que no ha habido un estándar durante años. Ahora tenemos aplicación / javascript como un tipo MIME oficial.
Pero en realidad, el tipo MIME no importa en absoluto, ya que el navegador puede determinar el tipo en sí. Es por eso que las especificaciones HTML5 establecen que
type="text/javascript"ya no es necesario.fuente
applicationporque.js-Los archivos no son algo que un usuario quiera leer, sino algo que debería ejecutarse.fuente
text, ybinarycomoapplication-O el "propósito" de dicho tipo como en "imagen", o "documento", etc.application / javascript es el tipo correcto de usar, pero dado que no es compatible con IE6-8, se quedará atascado con text / javascript. Si no le importa la validez (excluido HTML5), simplemente no especifique un tipo.
fuente
application/javascript.