美文网首页
WebApi—CORS跨域

WebApi—CORS跨域

作者: 高调的小丑 | 来源:发表于2018-08-02 16:30 被阅读149次

    添加nuget包:microsoft.aspnet.webapi.cors
    在WebApiConfig.cs文件中配置跨越

    using System.Web.Http.Cors;
    
    namespace MiLan.FinanceAPI
    {
        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                //跨域配置
                config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
        }
    }
    

    这部分代码会导致这个接口称为一个公告接口,任何人都可以访问,这个时候我们需要配置一下

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

    在Web.config文件中添加配置文件信息

    <appSettings><add key="cors:milanHeaders" value="*"/>
      <add key="cors:milanMethods" value="*"/>
      <add key="cors:milanOrigins" value="http://localhost:8081"/>
    </appSettings>
    

    用逗号隔开来允许多个域名请求

    在WebApiConfig.cs文件中配置跨越

    //跨域配置
    //config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
    var headers = ConfigurationManager.AppSettings["cors:milanHeaders"];
    var orgins = ConfigurationManager.AppSettings["cors:milanOrigins"];
    var methods = ConfigurationManager.AppSettings["cors:milanMethods"];
    var supportCors = new EnableCorsAttribute(orgins, headers, methods)
    {
        SupportsCredentials = true
    };
    config.EnableCors(supportCors);
    

    如果只想对某一个api进行跨域,可以直接在API的类上面使用特性标注即可。

    [EnableCors(origins: "http://localhost:8081/", headers: "*", methods: "GET,POST,PUT,DELETE")]
    public class BalanceSheetController : ApiController
    {
        [HttpPost]
        public BasicResponse GetBalanceSheet()
        {
            return AutofacExt.GetFromFac<BalanceSheetManageApp>().GetAllBalanceSheet();
        }
    }
    

    这部分参考了懒得安分的文章,感谢!

    相关文章

      网友评论

          本文标题:WebApi—CORS跨域

          本文链接:https://www.haomeiwen.com/subject/cblsvftx.html