背景:
用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,結果成功了。