在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:
资源解释为脚本,但传输与MIME类型文本/纯。
我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?
问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?
在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:
资源解释为脚本,但传输与MIME类型文本/纯。
我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?
问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?
当前回答
如果你正在使用AdonisJS (REST API,例如),一种避免这种情况的方法是这样定义响应头:
response.safeHeader('Content-type', 'application/json')
其他回答
当我试图通过javascript (jQuery在这种情况下)改变数组中的背景图像时,我也遇到了同样的问题。
无论如何。
而不是这样:
m.setStyle('background-image','url(/templates/site/images/style5/'+backgs[i]+')')
这样做:
eval("m.setStyle('background-image','url(/templates/site/images/style5/'+backgs[i]+')')");
Chrome javascript在试图解析一个以'为结构的元素中的变量时会搞砸。在我的例子中,它在插入图像数组之前停止。它不是解析图像url +图像名称(在数组内),而是只解析图像url。
您可能需要在代码中搜索,看看它发生在哪里。FF, IE和其他所有的都没有这个问题。
我收到这条调试消息的原因比这里的其他答案更愚蠢:这是当你没有得到足够的睡眠并使用css文件的语法引用js文件时收到的错误消息。如,
<link rel='stylesheet' type='text/css' href='clearly_javascript.js'/>
而不是
<script src='clearly_javascript.js'></script>
我想我应该把这个放在这里,因为这是搜索错误消息时出现的第一篇文章。
如果您正在使用Joomla!并且在尝试包含(.js) JavaScript文件时得到这个恼人的错误,那么下面的解决方案适合你。
最可能的问题是您试图包含一个不存在的.js文件,或者您只是放错了那个.js文件,而当Joomla!如果没有找到资源,那么它将返回一个完整的404消息,其中包含完整的网页和HTML等。
web浏览器将它解释为.js,而它只是一个网页,说所需的文件没有找到。
这可以为joomla2.5joomla3.0joomla3.1joomla3.2joomla3.3joomla工作
这与jQuery或任何客户端脚本代码无关。这是一个服务器端问题:服务器(端应用程序)没有为客户端脚本资源发送预期的HTTP Content-Type报头字段值。如果Web服务器配置不充分、配置错误,或者服务器端应用程序(例如,PHP)正在生成客户端脚本资源,就会发生这种情况。
适合ECMAScript实现(如JavaScript)的MIME媒体类型包括:
文本/javascript(注册为过时,未弃用;但仍然有效,支持最好) Text /ecmascript(注册为过时,未弃用;但仍然有效) 应用程序/ javascript 应用程序/ ecmascript
它们不包括application/x-javascript,因为上面列出的MIME媒体类型现在已经在标准树中注册了(所以没有必要,也不应该再使用实验性的媒体类型)。参考RFC 4329,“脚本媒体类型”(2005 CE)和我的测试用例:对脚本媒体类型的支持。
一种解决方案是尽可能配置服务器,正如已经推荐的那样。对于Apache,这就像添加指令一样简单
AddType text/javascript .js
(详见Apache HTTP Server文档)。
但是如果客户端脚本资源是由服务器端应用程序生成的,比如PHP,那么就有必要显式地设置Content-Type报头字段值,因为默认值可能是text/html:
<?php
header('Content-Type: text/javascript; charset=UTF-8');
// ...
?>
(该语句和类似的语句必须在任何其他输出之前出现-请参阅PHP手册-,否则HTTP消息体被认为已经开始,并且发送更多的报头字段为时已晚。)
客户端脚本资源很容易在服务器端生成,即使服务器上有普通的.js文件,如果在提供注释时从它们中删除注释,如果它们都被打包到一个大响应中(以减少请求的数量,这可能更有效),或者服务器端应用程序以任何其他方式最小化它们。
我遇到了这个问题,我找到了解决它的方法。
当样式(CSS)文件的编码与引用.css文件的PHP文件的编码不同时,就会发生这种情况
例如,使用Unix编码的jQuery.js和使用UTF-8编码的index.php会导致这个问题,所以你必须让它们都是UTF-8或任何其他编码,只要它们是相同的。