Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome Chrome说“我的朋友,我的朋友。”;解释为脚本但使用MIME类型text/plain传输的资源;,有什么好处?_Google Chrome_Mime Types_Joomla2.5_Joomla3.0_Joomla3.1_Joomla3.2_Joomla3.3_Joomla - Fatal编程技术网

Google chrome Chrome说“我的朋友,我的朋友。”;解释为脚本但使用MIME类型text/plain传输的资源;,有什么好处?

Google chrome Chrome说“我的朋友,我的朋友。”;解释为脚本但使用MIME类型text/plain传输的资源;,有什么好处?,google-chrome,mime-types,joomla2.5,joomla3.0,joomla3.1,joomla3.2,joomla3.3,joomla,Google Chrome,Mime Types,Joomla2.5,Joomla3.0,Joomla3.1,Joomla3.2,Joomla3.3,Joomla,在FF和其他方面,我的javascript工作得很好。但在Chrome中,它传达了以下信息: 解释为脚本但使用MIME类型text/plain传输的资源 我检查了所有的脚本标记,它们都有MIME type=“text/javascript”。它甚至在jquery和jQueryUI中这样说。铬有什么问题 有什么问题和解决办法?这是我必须在浏览器的“选项”中更改的内容,还是来自服务器,还是我必须调整代码?这意味着服务器正在使用 Content-Type: text/plain Content-Ty

在FF和其他方面,我的javascript工作得很好。但在Chrome中,它传达了以下信息:

解释为脚本但使用MIME类型text/plain传输的资源

我检查了所有的脚本标记,它们都有
MIME type=“text/javascript”
。它甚至在jquery和jQueryUI中这样说。铬有什么问题


有什么问题和解决办法?这是我必须在浏览器的“选项”中更改的内容,还是来自服务器,还是我必须调整代码?

这意味着服务器正在使用

Content-Type: text/plain
Content-Type: application/javascript
您需要将服务器配置为使用发送JavaScript响应

Content-Type: text/plain
Content-Type: application/javascript

用于Web逻辑等Java应用程序服务器

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>

真的
MyWebApp
2) 将javascript的mime类型添加到web.xml文件:

    ...
        </servlet-mapping>

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

        <welcome-file-list>
    ...
。。。
js
应用程序/javascript
...
这也适用于其他Java容器—Tomcat等。
application/javascript
是当前唯一有效的mime类型;像
text/javascript
这样的其他脚本已经被弃用


3) 您可能需要清除浏览器缓存或按CTRL-F5键。在尝试通过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和所有其他工具都没有这个问题。

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

AddType application/x-javascript .js

这与jQuery或客户端脚本代码的任何怪癖无关。这是一个服务器端问题:服务器(-side)应用程序未发送客户端脚本资源的预期HTTP值。如果Web服务器配置不足、配置错误或者服务器端应用程序(例如PHP)正在生成客户端脚本资源,就会发生这种情况

ECMAScript实现(如JavaScript)的适当MIME媒体类型包括:

  • text/javascript
    (注册为已过时,未弃用;但仍然有效,且支持最佳
  • text/ecmascript
    (注册为已过时,未弃用;但仍然有效
  • application/javascript
  • application/ecmascript
它们不包括
application/x-javascript
,因为上面列出的MIME媒体类型是目前在标准树中注册的类型(因此不需要也不希望再使用实验性媒体)。参见RFC 4329,“脚本媒体类型”(2005 CE)和我的

一种解决方案是尽可能配置服务器,正如已经推荐的那样。对于Apache,这可以像添加指令一样简单

AddType text/javascript .js
(有关详细信息,请参阅)

但是,如果客户端脚本资源是由服务器端应用程序(如PHP)生成的,则有必要显式设置
内容类型
标题字段值,因为默认值可能是
text/html

<?php
  header('Content-Type: text/javascript; charset=UTF-8');
  // ...
?>

(该语句和类似语句必须在任何其他输出之前出现–请参阅-,否则HTTP消息正文将被视为已经开始,现在发送更多头字段为时已晚。)


即使服务器上有纯.js文件,服务器端脚本资源也可以很容易地生成,如果在提供注释时从这些文件中删除注释,如果这些注释都打包到一个大型响应中(以减少请求数量,这样会更有效),或者,服务器端应用程序以任何其他方式将它们最小化。

我遇到了这个问题,并找到了解决方法

当样式(CSS)文件的编码与引用.CSS文件的PHP文件的编码不同时,就会发生这种情况


例如,在Unix编码中使用jQuery.js和在UTF-8中使用index.php将导致此问题,因此必须使它们都使用UTF-8或任何其他编码,只要它们相同

检查服务器上是否存在js文件。我遇到了这个问题,发现js文件没有上传到服务器,而服务器实际上返回了html页面-这是服务器上配置的默认文档(例如default.html)

我在使用web框架时遇到了这个问题,并通过将相关javascript文件移到指定的(通过框架)javascript文件夹。

如果您使用php文件生成javascript,请将此添加为文件的开头:

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

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

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

不过,浏览器似乎有一个默认值
纯/文本

例如:

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

您还可以在ApacheC中为该文件扩展名设置默认值
<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>
<mvc:resources mapping="/js/*.js" location="/js/"/>
<mvc:resources mapping="/css/*.css" location="/css/"/>
<mvc:resources mapping="/images/*.*" location="/images/"/>
<link rel='stylesheet' type='text/css' href='clearly_javascript.js'/>
<script src='clearly_javascript.js'></script>
response.safeHeader('Content-type', 'application/json')