应用程序/x-javascript和文本/javascript内容类型之间的差异
这些标题之间有什么区别应用程序/x-javascript和文本/javascript内容类型之间的差异,javascript,http-headers,content-type,Javascript,Http Headers,Content Type,这些标题之间有什么区别 Content-Type: application/javascript Content-Type: application/x-javascript Content-Type: text/javascript 哪一个最好,为什么 请不要说它们是相同的——如果它们是相同的,就不会有三个。我知道这两种工作方式,但我想知道它们的区别。以x-开头的mime类型没有标准化。就javascript而言,它有点过时了。 第二个代码段的附加说明 <?Header('Conten
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
哪一个最好,为什么
请不要说它们是相同的——如果它们是相同的,就不会有三个。我知道这两种工作方式,但我想知道它们的区别。以
x-
开头的mime类型没有标准化。就javascript而言,它有点过时了。
第二个代码段的附加说明
<?Header('Content-Type: text/javascript');?>
但是,javascript完全正确的mime类型是
application/javascript
text/javascript
已经过时,application/x-javascript
是一个过渡时期的实验(因此x-
前缀),直到application/javascript
可以标准化
您应该使用应用程序/javascript
,这在中有说明
就浏览器而言,没有区别(至少在HTTP头中是这样)。这只是一个更改,使得text/*
和application/*
MIME类型组在可能的情况下具有一致的含义。(text/*
MIME类型用于人类可读的内容,JavaScript的设计目的不是直接向人类传达含义)
请注意,在脚本元素的type
属性中使用application/javascript
,将导致在一些旧浏览器中忽略脚本(因为脚本使用的是未知语言)。要么继续在那里使用text/javascript
,要么完全忽略该属性(这在HTML5中是允许的)
这在HTTP头中不是问题,因为浏览器普遍(据我所知)要么完全忽略脚本的HTTP内容类型,要么足够现代,可以识别
application/javascript
,根据RFC 4329,javascript的正确MIME类型应该是application/javascript
。然而,较旧的IE版本在这方面遇到了瓶颈,因为他们希望text/javascript
使用type=“application/javascript”
对于HTML5,type属性是过时的,您可以删除它。注意:根据w3.org,它默认为“text/javascript”,因此我建议添加“application/javascript”,而不是删除它
类型 属性提供脚本的语言或数据的格式。如果 属性存在,其值必须是有效的MIME类型。这个 不能指定字符集参数。默认值,在以下情况下使用 该属性不存在,为“text/javascript” 使用“应用程序/javascript”,因为“文本/javascript”已过时: RFC 4329:
ecmascript,但将其标记为“过时”。使用实验性和非实验性 不鼓励使用上面第部分列出的未注册媒体类型。
媒体类型
* application/javascript
* application/ecmascript
也在本文件中定义,用于通用
使用和应改为使用
本文件定义了键入text/javascript、text/ecmascript和application/javascript。
媒体类型应用程序/ecmascript的使用和支持是
比
这份文件。利用这一优势,本文档定义了
此类型的处理规则更严格,以促进更高的互操作性
处理
x-javascript是实验性的,不要使用它。据我所知,IE没有给出一个猴子的HTTP内容类型所说的;只有HTML
type
属性表示的内容(在HTML5草稿中,JavaScript可能会忽略该属性)。@Quentin Ah。。。这就是给我带来麻烦的原因。谢谢非常感谢你的详细回答。还有一个问题——你说过我可以完全省略它(只有HTML5?)——但我的问题(后来有人编辑过)是专门关于PHP中的JS的——如果我完全省略它,它会在所有服务器/浏览器上作为PHP/JS组合工作吗?你可以省略
元素上的type
属性。你不能忽略内容类型
HTTP头…永远(如果你不在PHP中指定它,那么PHP将默认为text/html
,这是非常错误的)。按照人类可读的逻辑,CSS不也应该在应用程序下而不是文本下分类吗?@frnhr你对这个答案的编辑改变了预期的含义(这说明text/javascript
已经过时,application/x-javascript
是实验性的)。更糟糕的是,它使答案的开头不连贯,一个块说text/javascript
只是毫无明显原因地挂在答案的顶部。在SVN中,一定要使用text/javascript。SVN将任何不以text/开头的内容视为二进制。要修复整个SVN工作副本,您需要创建一个mime.cmd文件c包含以下内容:@echo off
用于/r
* application/javascript
* application/ecmascript