在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:
资源解释为脚本,但传输与MIME类型文本/纯。
我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?
问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?
在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:
资源解释为脚本,但传输与MIME类型文本/纯。
我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?
问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?
当前回答
在我的例子中,服务器发送了正确的内容类型,但内容编码不正确。确保只对gzip压缩的资源设置Content-Encoding: gzip。此外,在我修复了服务器中的头文件(在我的例子中,是谷歌云存储)后,我不得不等待几分钟以正确反映由于缓存造成的更改。
其他回答
如果你用一个php文件生成javascript,添加这个作为你的文件的开头:
<?php Header("Content-Type: application/x-javascript; charset=UTF-8"); ?>
如果你正在使用Spring MVC, 你可以添加下面的mvn标签来排除Spring Dispatch Servlet中的资源文件
<mvc:resources mapping="/js/*.js" location="/js/"/>
<mvc:resources mapping="/css/*.css" location="/css/"/>
<mvc:resources mapping="/images/*.*" location="/images/"/>
这意味着服务器正在发送Javascript HTTP响应
Content-Type: text/plain
您需要配置服务器以发送JavaScript响应
Content-Type: application/javascript
如果你正在使用AdonisJS (REST API,例如),一种避免这种情况的方法是这样定义响应头:
response.safeHeader('Content-type', 'application/json')
我收到这条调试消息的原因比这里的其他答案更愚蠢:这是当你没有得到足够的睡眠并使用css文件的语法引用js文件时收到的错误消息。如,
<link rel='stylesheet' type='text/css' href='clearly_javascript.js'/>
而不是
<script src='clearly_javascript.js'></script>
我想我应该把这个放在这里,因为这是搜索错误消息时出现的第一篇文章。