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

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

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

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


当前回答

simon-sarris在这里发布的答案帮助了我。

This helped me solve my issue. The Visual Studio installer must have added an errant line to the registry. open up regedit and take a look at this registry key: See that key? The Content Type key? change its value from text/plain to text/javascript. Finally chrome can breathe easy again. I should note that neither Content Type nor PercievedType are there by default on Windows 7, so you could probably safely delete them both, but the minimum you need to do is that edit. Anyway I hope this fixes it for you too!

更改后不要忘记重新启动系统。

其他回答

对于Java应用服务器,如Weblogic

1)确保你的weblogic.xml文件没有错误

比如这个:

    <?xml version = '1.0' encoding = 'windows-1252'?>
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
                  xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    <context-root>MyWebApp</context-root>
</weblogic-web-app>

2)在web.xml文件中添加javascript的mime类型:

    ...
        </servlet-mapping>

        <mime-mapping>    
            <extension>js</extension>        
            <mime-type>application/javascript</mime-type>        
        </mime-mapping>

        <welcome-file-list>
    ...

这也将适用于其他Java容器- Tomcat等应用程序/javascript是目前唯一有效的mime类型;其他如text/javascript已弃用。

3)您可能需要清除浏览器缓存或按CTRL-F5

奇怪的问题,但这帮我解决了我的问题。有时候,即使是最简单的事情也很难弄清楚……

而不是使用 /js/main.css在我的脚本标签我使用js/main.css

是的,它确实起到了作用。我坐在WAMP / Windows上,我没有vhost,但只是使用localhost/<项目>

如果我引用/js/main.css,那么我引用localhost/css/main.css,而不是localhost/<项目>/css/main.css

当你想到它的时候,这是很明显的,但如果有人偶然发现了这个问题,我想我会分享这个答案。

对我来说,它只发生在一些页面上,因为我使用了window。Location代替$ Location .url(…);这解决了我的问题。花了一段时间才弄明白:)

如果你用一个php文件生成javascript,添加这个作为你的文件的开头:

<?php Header("Content-Type: application/x-javascript; charset=UTF-8"); ?>

发生这种情况的常见情况是,您只是忘记在脚本调用中包含该类型。你必须显式地设置它,因为它是-根据W3 -要求:

type (content-type):该属性指定元素内容的脚本语言,并覆盖默认的脚本语言。脚本语言被指定为内容类型(例如,“text/javascript”)。作者必须为该属性提供一个值。此属性没有默认值。

浏览器仍然有一个默认值plain/text。

例子:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=en"></script>

你也可以在Apache配置中设置该文件扩展名的默认值:

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