部署在服务器上的应用请求json文件返回404解决方法及原因分析

解决方法

最近在做项目的时候,碰到了一个怪事儿,明明json文件放在服务器对的位置,url也查了好几遍,但是每次请求json文件时,却总是返回404找不到文件。小编花了好久才查到,原来可能是部署应用的服务器忘记在MIME里注册json类型了,对于不同的IIS版本有不同的添加方法

IIS6.0
1.打开IIS添加Mime项
关联扩展名:*.json
内容类型(MIME):application/x-javascript

2.添加映射:
位置在IIS对应站点右键属性:”主目录”-”应用程序设置”-”配置”-”映射”-”添加”,会打开”添加/编辑应用程序扩展名映射”
扩展名:.json
运行文件:C:\WINDOWS\system32\inetsrv\asp.dll
动作:GET,POST

IIS7.x
1.打开IIS添加Mime项
关联扩展名:*.json

内容类型(MIME):text/json

原因分析

问题出来了,总要剖析下原因

首先了解下MIME

MIME(Multipurpose Internet Mail Extensions)中文译为多用途互联网邮件扩展类型
它是一个互联网标准,用来指定文件的扩展名并根据其扩展名找到对应的程序打开文件。当文件被访问时,浏览器会自动使用指定应用程序来打开。MIME多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

MIME在1992年最早应用于电子邮件系统,但后来应用到了浏览器。服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。

浏览器接收到文件后,会进入插件系统进行查找,查找出哪种插件可以识别读取接收到的文件。如果浏览器不清楚调用哪种插件系统,它可能会告诉用户缺少某插件(会报出404错误,json文件找不到也就是这个原因),或者直接选择某现有插件来试图读取接收到的文件,或者可能会导致系统的崩溃。传输的信息中缺少MIME标识可能导致的情况很难估计,因为某些计算机系统可能不会出现什么故障,但某些计算机可能就会因此而崩溃。

因此,如果你遇到了同样的问题,希望这篇文章能够帮助你解决燃眉之急。

你可能感兴趣的:(JavaScript,iis7-0,iis6-0)