在FF和所有,我的javascript工作良好。但在Chrome中,它会给出这样的信息:

资源解释为脚本,但传输与MIME类型文本/纯。

我已经检查了所有的脚本标签,他们都有MIME类型=“文本/javascript”。它甚至说jquery和jquery ui。Chrome出了什么问题?

问题是什么,解决方法是什么?它是我必须改变浏览器的“选项”,还是来自服务器,或者我必须调整我的代码?


当前回答

如果它的IIS确保在你的公共HTTP功能下,你已经打开了静态内容

其他回答

在apache的httpd.conf中,只需添加这样一行:

AddType application/x-javascript .js

如果你正在使用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 (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和其他所有的都没有这个问题。

我有同样的错误,最后(在我的特殊情况下),我发现部署描述符(web.xml)有问题

存在的问题:

<servlet-mapping>
    <servlet-name>SessionController</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
...
<welcome-file-list>
    <welcome-file>/</welcome-file>
</welcome-file-list>

解决方案:

<servlet-mapping>
    <servlet-name>SessionController</servlet-name>
    <url-pattern>/SessionController</url-pattern>
</servlet-mapping>
...
<welcome-file-list>
    <welcome-file>desktop.jsp</welcome-file>
</welcome-file-list>

如果你正在使用AdonisJS (REST API,例如),一种避免这种情况的方法是这样定义响应头:

response.safeHeader('Content-type', 'application/json')