.NET 处理WEBAPI跨域问题

本文详细介绍了JavaScript跨域问题的成因,通过导入microsoft.aspnet.webapi.cors.dll并配置WebApiConfig.cs中的CORS策略,以及在Web.config中设置允许的跨域地址。适合Web开发者解决前后端分离项目中的跨域问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.跨域问题导致的原因

出于安全考虑,浏览器会限制脚本中发起的跨站请求,浏览器要求JavaScript或Cookie只能访问同域下的内容。

由于这个原因,我们不同站点之间的数据访问会被拒绝。

2.解决方案

2.1.导入microsoft.aspnet.webapi.cors.dll

点击项目下面的引入,选择“管理NuGet程序包”

搜索microsoft.aspnet.webapi.cors

点击“安装”即可。

2.2.代码实现

在App_Start文件夹下面的WebApiConfig.cs类里面的Register方法下面增加允许跨域的实现。

代码如下:

//获取配置文件中的跨域配置
var allowedOrigin = ConfigurationManager.AppSettings["allowedOrigin"];  
//跨域配置
EnableCorsAttribute coreAttr = new EnableCorsAttribute(allowedOrigin, "*", "*")
{
     SupportsCredentials = true
};
config.EnableCors(coreAttr);

2.3.在Web.config增加配置项

在<appSettings></appSettings>添加允许跨域的地址,*标识允许所有地址跨域访问

则如下:

  <appSettings>
    <add key="allowedOrigin" value="*"/>
  </appSettings>

如果只允许某个地址跨域访问,则配置如下:

  <appSettings>
    <add key="allowedOrigin" value="http://xxx.xxx.xxx.xx:xxxx"/>
  </appSettings>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鱼>

一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值