C# WebApi CORS跨域问题解决方案

2020-01-05 09:23:21王冬梅

上文我们使用


config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

这一句解决了跨域问题,上面说了,这种*号是不安全的。因为它表示只要别人知道了你的请求url,任何请求都可以访问到你的资源。这是相当危险的。所以需要我们做一些配置,限制访问权限。比如我们比较常见的做法如下:

配置方法一、在Web.Config里面

C#,WebApi,CORS,跨域

然后在WebApiConfig.cs文件的Register方法里面

C#,WebApi,CORS,跨域

配置方法二、如果你只想对某一些api做跨域,可以直接在API的类上面使用特性标注即可。


[EnableCors(origins: "http://localhost:8081/", headers: "*", methods: "GET,POST,PUT,DELETE")]
  public class ChargingController : ApiController
  {
    /// <summary>
    /// 得到所有数据
    /// </summary>
    /// <returns>返回数据</returns>
    [HttpGet]
    public string GetAllChargingData()
    {
      return "Success";
    }
  }

四、总结

以上就是一个简单的CORS解决WebApi跨域问题的实例,由于博主使用WebApi的时间并不长,所以很多理论观点未必成熟,如果有说的不对的,欢迎指出。也希望大家多多支持ASPKU。