C# Web API 由於默認對 OPTION 請求的不一樣的處理,導致部分會通過 OPTION 請求來檢測是否可跨域的瀏覽器,在跨域時總是還沒開始就被拒絕。
處理辦法
在 Web.config 中配置跨域,修改默認配置。
重點先行,註釋掉以下這句
<!--<remove name="OPTIONSVerbHandler" />-->
相關配置結果
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<!--<remove name="OPTIONSVerbHandler" />-->
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, WG-App-Version, WG-Device-Id, WG-Network-Type, WG-Vendor, WG-OS-Type, WG-OS-Version, WG-Device-Model, WG-CPU, WG-Sid, WG-App-Id, WG-Token, token" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS, PUT, DELETE" />
<add name="Access-Control-Allow-Credentials" value="false" />
</customHeaders>
</httpProtocol>
</system.webServer>