为什么Internet Explorer调试器在代码中将javascript文件标识为text/html,而在iis中,类型设置为application/javascript?
当将X-Content-Type-Options设置为“nosniff”时,由于“mime类型不匹配”,我网站上的所有javascript文件都被阻止 在我的代码中,有许多javascript文件用于aspx文件。以下是aspx文件中的一些声明:(注意:还有更多)为什么Internet Explorer调试器在代码中将javascript文件标识为text/html,而在iis中,类型设置为application/javascript?,javascript,asp.net,Javascript,Asp.net,当将X-Content-Type-Options设置为“nosniff”时,由于“mime类型不匹配”,我网站上的所有javascript文件都被阻止 在我的代码中,有许多javascript文件用于aspx文件。以下是aspx文件中的一些声明:(注意:还有更多) 通过许多谷歌搜索,我还被引导在IIS中设置MIME类型。我已经这样做了 现在,我将代码设置为:“application/javascript”,并将.js文件的IIS Mime类型设置设置为“application/javascr
通过许多谷歌搜索,我还被引导在IIS中设置MIME类型。我已经这样做了
现在,我将代码设置为:“application/javascript”,并将.js文件的IIS Mime类型设置设置为“application/javascript”
但是,这些文件仍因mime类型不匹配而被阻止
使用Internet Explorer调试器时,如果单击“网络”选项卡,我可以看到对每个文件的请求
查看请求的javascript文件,我可以看到在名为“内容类型”的列中,调试器显示“text/html”
同样在调试器的右侧窗格中的headers选项卡中,我可以看到请求头和响应头
请求头显示:接受:application/javascript,/;q-0.8 响应标题显示: 内容类型:text/html;字符集-utf-8 我觉得这就是“不匹配”的地方,但我不知道“text/html”是从哪里来的。如前所述,我的代码的类型设置为“application/javascript”,IIS设置为“application/javascript” 我将包括一个图像,试图封装正在发生的一切: (显然,在发布图片之前,我需要至少10个信誉点,所以我不能提供任何图片) 预期的结果是,我没有得到mime类型不匹配,并且允许执行我的javascript文件。我找到了答案 web.config中存在导致此问题的设置 我不知道它起作用的原因,但我对该设置进行了注释 在“system.webServer”部分中,有一个“handlers”部分 在“处理程序”部分,需要注释掉以下内容:
<add name="JS" path="*.js" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requiredAccess="Script" />
注释完本节后,javascript文件不再因mime类型不匹配而被阻止
<add name="JS" path="*.js" verb="GET, HEAD, POST, DEBUG" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requiredAccess="Script" />