JavaScript和文本/ JavaScript内容类型
这些头文件有什么区别?
Content-Type: application/javascript
Content-Type: application/x-javascript
Content-Type: text/javascript
哪一个最好,为什么?
请不要说它们是相同的 - 如果它们是相同的,就不会有两个。 我知道这两个工作 - 但我想知道其中的差异。
text/javascript
是过时的,并且application/x-javascript
是实验性的(因此是x-
前缀)的过渡期,直到application/javascript
可以被标准化。
你应该使用application/javascript
。 这在RFC中有记录。
就浏览器而言,没有什么区别(至少在HTTP头文件中)。 这只是一个改变,所以text/*
和application/*
MIME类型组在可能的情况下具有一致的含义。 ( text/*
MIME类型用于人类可读内容,JavaScript并不旨在直接向人类传达意义)。
请注意,在脚本元素的type
属性中使用application/javascript
会导致在一些较旧的浏览器中忽略该脚本(因为它是未知语言)。 要么继续使用text/javascript
,要么完全忽略该属性(这在HTML 5中是允许的)。
这在HTTP头中并不是一个问题,因为浏览器是普遍的(据我所知),要么完全忽略HTTP内容类型的脚本,要么现代的足以识别application/javascript
。
以x-
开头的mime类型不是标准化的。 在JavaScript的情况下,它是过时的。 额外的第二个代码片段
<?Header('Content-Type: text/javascript');?>
要求启用short_open_tags
。 你应该避免它。
<?php Header('Content-Type: text/javascript');?>
但是,JavaScript的完全正确的mime类型是
application/javascript
http://www.iana.org/assignments/media-types/application/index.html
根据RFC 4329,JavaScript的正确MIME类型应该是application/javascript
。 Howerver,较早的IE版本因为期望text/javascript
窒息。