部署在服务器上的应用请求json文件返回404解决方法及原因分析
2017-11-14 14:27
519 查看
解决方法
最近在做项目的时候,碰到了一个怪事儿,明明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标识可能导致的情况很难估计,因为某些计算机系统可能不会出现什么故障,但某些计算机可能就会因此而崩溃。
因此,如果你遇到了同样的问题,希望这篇文章能够帮助你解决燃眉之急。
相关文章推荐
- ajax跨域,使用json,crossDomain,请求返回状态200,但是走的error的原因以及解决方法
- “远程服务器返回错误: (404) 未找到”的正确解决方法
- ajax请求返回json数据弹出下载框的解决方法
- mysql服务器查询慢原因分析与解决方法
- 初涉Ajax,以post或get方法发送数据,以json或xml形式接收服务器返回的请求
- Guice+strut2多个应用部署问题原因及解决方法
- mysql服务器查询慢原因分析与解决方法小结
- PHP解码Json(json_decode)字符串返回NULL的原因及解决方法(转载)
- nginx后端服务器返回给nginx502、504、404、执行超时等错误状态的解决方法
- C#操作FTP报错,远程服务器返回错误:(550)文件不可用(例如,未找到文件,无法访问文件)的解决方法
- IE6不能正常解析CSS文件问题的解决方法及原因分析
- [环境搭建]-Web Api搭建到IIS服务器后PUT请求返回HTTP Error 405.0 - Method Not Allowed 解决方法
- 服务器出现 HTTP 400、404、500、502 错误原因及解决方法
- Hadoop HDFS 文件访问权限问题导致Java Web 上传文件到Hadoop失败的原因分析及解决方法
- mysql服务器查询慢原因分析与解决方法小结
- mysql服务器查询慢原因分析与解决方法小结
- IIS应用程序池由服务器引起常见错误号的原因分析及解决方法
- C++Test静态分析时,抛出”解析文件失败”错误的原因及解决方法
- $.getJSON在IE下失效的原因分析及解决方法
- .NET Web应用基于IIS7.0部署下文件上传大小限制解决方法