zoukankan      html  css  js  c++  java
  • 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("*", "*", "*"));
  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/refuge/p/8371845.html
Copyright © 2011-2022 走看看