gpt4 book ai didi

ASP.net WebAPI跨域调用问题的解决方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章ASP.net WebAPI跨域调用问题的解决方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

发现问题 。

最近在做一个项目,前端是VUE,后端是WebAPI,业务也就是一些实体的增删改查。在项目开始的时候我就预计到有跨域的问题,所以也找了一下资料,在Web.Config里面加上了配置信息:

?
1
2
3
4
5
6
7
<httpProtocol>
   <customHeaders>
   <add name= "Access-Control-Allow-Origin" value= "*" />
   <add name= "Access-Control-Allow-Headers" value= "*" />
   <add name= "Access-Control-Allow-Methods" value= "GET, POST, PUT, DELETE" />
   </customHeaders>
  </httpProtocol>

这是网上找到的其中一种方法,也有自己写跨域的特征类,也可以引用微软库cors,网上能查到很多资料,这里就不一一展开了.

这样配置之后,我自己做Get测试,用JQ来调用也是ok的,我就以为跨域的设置已经做完了,然而天坑来了,Post操作调用不了,整天返回405错误,我就郁闷了,是怎么回事呢.

解决方法 。

上网查了一下跨域调用的原理,发现在跨域POST之前,是有一次OPTION方法调用,是用来确认是否运行跨域POST的握手确认过程。然后继续往下查,发现通过VS自建WebAPI工程默认有OPTION处理,默认是不允许跨域的.

所以我就在Web.Config里面把这几个代码注释掉了 。

?
1
2
3
4
5
6
<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>

最后跨域的POST请求通过了,用JQ和axios测试的.

也许,这个方法不是什么好方法,但确实解决我项目上的问题,所以记下来。如果有更好的方法还请各路高手指点 o(* ̄︶ ̄*)o 。

总结 。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我的支持.

原文链接:http://www.cnblogs.com/lukali/p/8505176.html 。

最后此篇关于ASP.net WebAPI跨域调用问题的解决方法的文章就讲到这里了,如果你想了解更多关于ASP.net WebAPI跨域调用问题的解决方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com