基于这个问题在IE中不工作jQuery代码,text/javascript
在HTML文档中使用,以便Internet Explorer可以理解。
但我想知道,您什么时候使用application/javascript
,更重要的是,为什么要使用它而不是text/javascript
?
基于这个问题在IE中不工作jQuery代码,text/javascript
在HTML文档中使用,以便Internet Explorer可以理解。
但我想知道,您什么时候使用application/javascript
,更重要的是,为什么要使用它而不是text/javascript
?
Answers:
从理论上讲,根据RFC 4329,application/javascript
。
假定的原因application
与该类型是可读还是可执行无关。这是因为语言/类型本身(而非通用charset
参数)规定了自定义字符集确定机制。的子类型text
应能够通过代理更改为另一个字符集,从而更改charset参数。JavaScript并非如此,因为:
一个。RFC表示用户代理应该对脚本进行BOM嗅探以确定类型(不过,我不确定是否有任何浏览器确实这样做);
b。浏览器使用其他信息-包括页面的编码,在某些浏览器中script charset
属性)来确定字符集。因此,任何尝试对资源进行转码的代理都将破坏其用户。(当然,实际上,没有人会使用转码代理,但这是目的。)
因此,文件的确切字节必须保留准确,这使得它的二进制application
类型,而不是技术上基于字符text
。
出于相同的原因,application/xml
正式优于text/xml
:XML具有自己的带内字符集信令机制。每个人也都忽略application
XML。
text/javascript
而text/xml
未必是官方的正确的事情,但有什么用大家今天兼容性的原因,为什么他们不正确的事情的原因是实际地说完全不重要。
application/javascript
IE和IE在兼容模式下运行IE=8
。似乎没有正确评估内联脚本。text/javascript
在那里工作正常。
X-Content-Type-Options: nosniff
防止浏览器解释类型。
Server: nginx
或nginx发送的内容相同。好像有能力找到一个洞的人都需要显式标头来知道您运行的服务器...
application
因为.js
-Files不是用户想要读取的东西,而是应该执行的东西。
application / javascript是要使用的正确类型,但由于IE6-8不支持它,因此您将不得不使用text / javascript。如果您不关心有效性(不包括HTML5),那么就不要指定类型。
application/javascript
。