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

 更新时间:2018年03月11日 15:00:08   作者:lukali  
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案。下面这篇文章主要给大家介绍了关于ASP.net WebAPI跨域调用问题的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。

发现问题

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

<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里面把这几个代码注释掉了

<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

总结

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

相关文章

  • 一个ASP.NET的MYSQL的数据库操作类自己封装的

    一个ASP.NET的MYSQL的数据库操作类自己封装的

    这篇文章主要介绍了一个ASP.NET的MYSQL的数据库操作类自己封装的,在数据库操作类中的连接字符串中记得加上charset=utf8 需要的朋友可以参考下
    2014-08-08
  • asp.net treeview checkbox 相关问题

    asp.net treeview checkbox 相关问题

    asp.net treeview checkbox 相关问题,需要的朋友可以看下。
    2009-06-06
  • 解读ASP.NET密码强度验证代码实例分享

    解读ASP.NET密码强度验证代码实例分享

    这篇文章介绍了ASP.NET密码强度验证代码实例,有需要的朋友可以参考一下
    2013-10-10
  • ASP.NET使用xslt将xml转换成Excel

    ASP.NET使用xslt将xml转换成Excel

    本文介绍利用Excel软件生成格式,提取和精简之后制作成xslt文件,将xml导入,以xslt为模板,生成新的Excel文件的过程。
    2016-05-05
  • .net开发人员常犯的错误分析小结

    .net开发人员常犯的错误分析小结

    我最新一直在和新手和入手级开发人员打交道,我注意到一些开发人员(甚至是老手)在粗心时常犯的错误。这些错误各不相同,从工具的使用到网络服务的适当应用都有。以下是六个主要的开发错误。
    2009-03-03
  • C# 调用存储过程简单完整的实例代码

    C# 调用存储过程简单完整的实例代码

    自己copy过来的,忘了出处,一来分享,二来保存起来,想学习c#与存储过程结合使用的朋友可以参考下。
    2010-01-01
  • 详解log4net的使用

    详解log4net的使用

    这篇文章主要介绍了log4net的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 浅谈asp.net Forms身份验证详解

    浅谈asp.net Forms身份验证详解

    这篇文章主要介绍了浅谈asp.net Forms身份验证详解 ,这种方法可以轻松的保持用户的登录状态(如果用户想这样),便捷的用户授权配置,增强的安全性,有兴趣的可以了解一下。
    2016-12-12
  • ASP.NET Core应用错误处理之三种呈现错误页面的方式

    ASP.NET Core应用错误处理之三种呈现错误页面的方式

    这篇文章主要给大家介绍了关于ASP.NET Core应用错误处理之三种呈现错误页面的方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • ASP.Net 上传图片并生成高清晰缩略图

    ASP.Net 上传图片并生成高清晰缩略图

    ASP.Net 上传图片并生成高清晰缩略图的代码
    2009-02-02

最新评论