文本/javascript 与应用程序/javascript

IT技术 javascript mime-types
2021-02-27 08:34:39

我对 MIME 类型application/javascripttext/javascript.

显然,一个应该被执行,另一个应该只是文本。

application/javascript在查看外部 .js 负载的标头时看到了。

HTTP/1.1 200 OK
Date: Mon, 13 Jan 2014 18:32:58 GMT
Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5
Content-Type: application/javascript
Content-Length: 856
keep-alive: timeout=5, max=59
Via: 1.1 (jetty)
Accept-Ranges: bytes

如果这application/javascript将执行 javascript,我们为什么不使用

<script type="application/javascript">
  // some js code.
</script>

反之亦然,为什么不是外部 js 负载text/javascript

1个回答

Per thistext/javascript过时使用application/javascript来代替。

text/javascript(已过时):JavaScript;在 RFC 4329 中定义并过时,以阻止其使用以支持 application/javascript。但是,HTML 4 和 5 中允许使用 text/javascript,并且与 application/javascript 不同,它具有跨浏览器支持。HTML5 中标签的“type”属性是可选的,完全没有必要使用它,因为所有浏览器总是假定正确的默认值(即使在规范要求的 HTML 4 中)。

该标准与 IE<=8 不兼容。

此答案中链接的维基百科文章不再包含“常用媒体类型列表”,而是指向IANA 官方媒体类型列表的链接text/javascript的条目可以在这个列表中找到,并引用了RFC 4329,它确实声明text/javascript已过时。
2021-04-16 08:34:39
工作组规范规定,text/javascript应使用。链接的维基百科文章不再包含该信息。
2021-04-23 08:34:39
Sry,我的意思是 IE<=8,仍然有很多人(不是我)想要支持它。我只是说您应该在回答中提到存在不兼容的旧引擎。
2021-05-03 08:34:39
…但同一行说,虽然它可能已经过时,但 IE<8 不理解application/javascript
2021-05-04 08:34:39
根据 IETF 的ECMAScript 媒体类型更新,RFC 4329 已过时。
2021-05-08 08:34:39