在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:
资源解释为脚本,但传输与MIME类型文本/纯。
我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?
问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?
在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:
资源解释为脚本,但传输与MIME类型文本/纯。
我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?
问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?
当前回答
奇怪的问题,但这帮我解决了我的问题。有时候,即使是最简单的事情也很难弄清楚……
而不是使用 /js/main.css在我的脚本标签我使用js/main.css
是的,它确实起到了作用。我坐在WAMP / Windows上,我没有vhost,但只是使用localhost/<项目>
如果我引用/js/main.css,那么我引用localhost/css/main.css,而不是localhost/<项目>/css/main.css
当你想到它的时候,这是很明显的,但如果有人偶然发现了这个问题,我想我会分享这个答案。
其他回答
我在使用web框架时遇到了这个问题,并通过将相关的javascript文件移动到指定的(由框架)javascript文件夹中来修复它。
这与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文件,如果在提供注释时从它们中删除注释,如果它们都被打包到一个大响应中(以减少请求的数量,这可能更有效),或者服务器端应用程序以任何其他方式最小化它们。
当我试图通过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和其他所有的都没有这个问题。
对我来说,它只发生在一些页面上,因为我使用了window。Location代替$ Location .url(…);这解决了我的问题。花了一段时间才弄明白:)
我遇到了这个问题,我找到了解决它的方法。
当样式(CSS)文件的编码与引用.css文件的PHP文件的编码不同时,就会发生这种情况
例如,使用Unix编码的jQuery.js和使用UTF-8编码的index.php会导致这个问题,所以你必须让它们都是UTF-8或任何其他编码,只要它们是相同的。