Google chrome Chrome说“我的朋友,我的朋友。”;解释为脚本但使用MIME类型text/plain传输的资源;,有什么好处?
在FF和其他方面,我的javascript工作得很好。但在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
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')