• Web Api 利用 cors 实现跨域


    一.安装 cors

    二.修改 Web.config

      <appSettings>
        <add key="cors:allowedMethods" value="*"/>
        <add key="cors:allowedOrigin" value="http://localhost:42021"/>
        <add key="cors:allowedHeaders" value="*"/>    
      </appSettings>  

    (如果想允许所有请求, 则都设置为 "*")

    三.修改 WebApiConfig.cs , 增加如下代码

            public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
    
    
                //跨域配置
                var allowedMethods = ConfigurationManager.AppSettings["cors:allowedMethods"];
                var allowedOrigin = ConfigurationManager.AppSettings["cors:allowedOrigin"];
                var allowedHeaders = ConfigurationManager.AppSettings["cors:allowedHeaders"];
    
                config.EnableCors(new EnableCorsAttribute(allowedOrigin, allowedHeaders, allowedMethods)
                {
                    SupportsCredentials = true
                });
    
    ......

    测试结果:

       

    当然,也可以设置只让某一些api允许跨域:

           [HttpGet]
            [HttpPost]
            [Route("order/pager")]
            [EnableCors(origins:"http://localhost:27593",headers:"*",methods:"*")]
            public IHttpActionResult Pager([FromUri]Person p)
            {
                return Json(p);
            }

    并且,这种设置也遵循就近原则:

    如果像上面那样设置后,27593 则能够通过访问该接口获取到数据,而 42021 则不行 .

    如果不想有什么限制,允许所有访问跨域,则可以只在 WebApiConfig.cs 中添加如下代码即可:

     config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
  • 相关阅读:
    多线程
    文件上传案例及多线程版本
    TCP、UDP网络通信
    刷题:蘑菇街最小移动次数
    刷题:蘑菇街回文串
    刷题:蘑菇街
    Range Sum Query
    Submission Details
    Reverse Words in a String
    Counting Bits
  • 原文地址:https://www.cnblogs.com/refuge/p/8371845.html
Copyright © 2020-2023  润新知