新創建的 asp.net mvc web api 項目後直接部署到 IIS 中,然後通過另外功能變數名稱 Ajax 跨功能變數名稱調用一個POST介面,並且請求頭headers中增加 Content-Type:application/json,根據阮一峰的文章《跨域資源共用 CORS 詳解》可知道這個非簡單請求會先... ...
新創建的 asp.net mvc web api 項目後直接部署到 IIS 中,然後通過另外功能變數名稱 Ajax 跨功能變數名稱調用一個POST介面,並且請求頭headers中增加 Content-Type:application/json,根據阮一峰
的文章《跨域資源共用 CORS 詳解》
可知道這個非簡單請求
會先通過OPTIONS來驗證伺服器是否支持,問題就出來在這裡,OPTIONS請求一直不成功,報405錯誤,經過不斷嘗試發現是 web api 建完項目後預設的Web.config里有這個一個配置:
<remove name="OPTIONSVerbHandler" />
只要把這個配置去掉,OPTIONS就可以正常,然後繼續後面的POST請求了。
我的問題是微軟為什麼會預設加上這個配置,有什麼用,真是無比深的一個坑!
<remove name="OPTIONSVerbHandler" />
如圖:
參考鏈接:
ASP.NET Web API 跨域訪問(CORS)要註意的地方
Enable cross-origin requests in ASP.NET Web API 2
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/Enable_cross-origin_requests_in_ASPNET_Web_API_2.html