在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也可能会有影响。
综上,都是一些比较小众且怪异的原因。