Asp.Net中WebApi解决跨域方法

跨域全称:Cross-origin Resource Sharing(跨域资源共享)

跨域简称:CORS

原理:

       解决跨域问题的原理是通过向http的请求报文响应报文里面加入相应的标识告诉浏览器它能访问哪些域名的请求。

跨域概念:

按照我的理解跨域就是:相互独立的运行程序,一个运行程序请求另一个运行程序的资源或者数据的经过就是跨域。当然这样说的不太准确。

举个例子可能大家会更明白点:

比如:前端程序和后端之间的交互,当然这里的说的前后端都是独立的不在一个项目文件中。当前端程序运行去利用一些手段(比如ajax)去请求后端的数据,由于前端运行的所用的端口或者IP和后端的不一样,这就产生了跨域访问。


给大家展示一张截图,看下跨域访问时报的错:


解决办法:

前台的话解决办法:

      可以用JsonP进行解决跨域的问题,怎样使用JsonP大家可以进行去查下,很简单。

重点来了:

后端的解决办法:(WebApi中的跨域解决)

方法一:在webconfig的配置文件中添加下面的代码:

//这个节点必须放在 <system.webServer>节点中
<httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>

方法二:

①:在NuGet的管理程序包进行下载一个插件microsoft.aspnet.webapi.cors

②:在AppStart文件夹中的WebApiConfig的类里进行配置


这样就把WebApi的跨域问题解决了。

展示效果:我的后台数据已经拿到了,说明跨域问题解决了。


结尾:

        分享:不论你在什么时候开始,重要的是开始之后就不要停止!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值