C#/.NET-WebApi 呼叫時跨域問題,踩坑指南
阿新 • • 發佈:2021-01-20
在WebApi專案裡面,config已經添加了解決跨域問題的配置,
釋出後的介面,其他人也可以正常呼叫,
postman也可以正常呼叫,
但是自己呼叫的時候就出現了跨域問題。
配置檔案如下
1 <system.webServer> 2 <!--解決跨域問題--> 3 <httpProtocol> 4 <customHeaders> 5 <clear /> 6 <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" /> 7 <add name="Access-Control-Allow-Headers" value="Content-Type,Token" /> 8 <add name="Access-Control-Allow-Origin" value="*" /> 9 </customHeaders> 10 </httpProtocol> 11 <handlers> 12 <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 13 <remove name="OPTIONSVerbHandler" /> 14 <remove name="TRACEVerbHandler" /> 15 <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 16 </handlers> 17<security> 18 <requestFiltering> 19 <!--最大允許請求長度,單位byte,當前限制為1G--> 20 <requestLimits maxAllowedContentLength="1073741824"></requestLimits> 21 </requestFiltering> 22 </security> 23 </system.webServer>
最後跨域的原因,
1.jQuery版本過低,這個是在調查的時候沒有想到的,
因為主流的3種解決方式(jsnop,nginx配置,CORS),
第一種無法使用,不支援POST,
第二種要改伺服器,也不能用,
第三種在配置已經有了。
2.可能和版本有關,contentType和ContentType也可能會有影響。
綜上,都是一些比較小眾且怪異的原因。