C#/.NET-WebApi 调用时跨域问题,踩坑指南

在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也可能会有影响。

综上,都是一些比较小众且怪异的原因。

 

C#/.NET-WebApi 调用时跨域问题,踩坑指南

上一篇:hive.groupby.skewindata及数据倾斜优化


下一篇:C# DataTable Column '' is read only.