背景:
用html写个jqgrid的例子,直接请求一个json文件,部署到IIS上浏览,jqgrid没显示数据。
排查:
一开始怀疑是不是IIS不支持json,但看了MIME设置有json,而且直接访问可以,然后又查了查,有说WebDAV的谓词限制改成全部的、有配置文件不对的,JSON过长等等,最后发现跟我遇到的情况都没啥关系。
结果:
真正的原因是“ Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求,否则会返回“HTTP/1.1 405 Method not allowed”错误。”,而jqgird请求数据的默认方式是post,也就是说正常写后台代码返回json的话是没问题的,但我又比较懒,只想写个纯前端小Demo,后来想到了ASP和IIS都是微软自家的东西,抱着试试的心里,把.json后缀名改成.asp,结果成功了。