新創建的 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
本文來自博客園,作者:古道輕風,轉載請注明原文鏈接:https://www.cnblogs.com/88223100/p/Enable_cross-origin_requests_in_ASPNET_Web_API_2.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478239.html
標籤:.NET技术
上一篇:Centos7部署Redis集群
