1. 程式人生 > 其它 >asp.net web api 跨域訪問 OPTIONS 405

asp.net web api 跨域訪問 OPTIONS 405

新建立的 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" />

如圖:

參考連結:

options請求(跨域預檢)

 ASP.NET Web API 跨域訪問(CORS)要注意的地方

跨域資源共享 CORS 詳解

Enable cross-origin requests in ASP.NET Web API 2