资源被解释为其他类型,但使用MIME类型text/javascript传输?

28

我不停地得到"资源被解释为其他,但传输的MIME类型为text/javascript",但是一切似乎都运行正常。这只在我的Mac上的Safari 4中发生。

有人建议我在标头中添加"meta http-equiv="content-script-type" content="text/javascript",但那没有起作用。

7个回答

71

最常见的获取该错误的方式是使用以下代码:

<img src="" class="blah" />

一个空白的URL是当前页面URL的快捷方式,因此会发出重复请求,返回的内容类型为HTML。浏览器期望得到一张图片,但实际上得到的是HTML。


+1 谢谢,问题已解决。我本以为如果 src 为空,浏览器不会加载任何内容...但它仍然会加载。通过将 src 添加到 spacer.gif 中解决了这个问题。 - Jason Jong
2
哇塞!谢谢,这个问题困扰我很长时间了。 - Stephen Patten
这让我花了4个小时来追踪,看起来像是Safari的一个bug。 - roman m

3

由于一个 jQuery 插件试图通过 JS 调用缺失的元素 var btnChange,我收到了这个错误。我注释掉了不需要(也不存在的)图片,警告(Google Chrome 开发工具)就消失了:

$(mopSliderName+" .sliderCaseRight").css({backgroundImage:"url("+btnChange.src+")"});

2
(webkit基础的)浏览器发出了一个警告,它决定忽略由Web服务器提供的MIME类型 - 在这种情况下是text/javascript,并应用不同的MIME类型 - 在这种情况下是“其他”。这是一个警告,用户通常可以忽略,但开发人员在查找问题线索时可能会发现有用。对于这个例子,它可能解释了为什么一些JavaScript没有被执行。

1
由于一个权限不正确的脚本引起了HTTP 403错误,我得到了这个错误。我在整个系统中赋予它读取和执行权限,然后问题得到了解决。

1

如果您调用了一个添加功能的JavaScript,它可能会导致问题,就像对我一样。目前还没有真正的答案。


1

您的 Web 服务器会使用特定的 MIME 类型发送内容。例如,PNG 图像会使用 HTTP 标头 Content-type: image/png 发送。请配置您的 Web 服务器或脚本以发送正确的内容类型。


实际上,我进行了研究并发现它没有任何问题。这是Safari 4倾向于做的事情...如果我没记错的话。 - homework

0

Apache MIME 模块有一个设置,它会忽略添加 JavaScript 类型,要解决这个问题,只需打开 .htaccess 文件或 httpd.conf 文件,添加以下行

<IfModule mod_mime.c>
  AddType text/javascript .js
</IfModule>

重启Apache服务器,问题将得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接