WebApi 跨域

要解决WebApi的跨域问题,可以通过nuget引入microsoft.aspnet.webapi.cors包,然后在WebApiConfig启用跨域,代码如下:

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}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }

附微软官方解决方案:https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api#set-the-allowed-request-headers

还没完!

如果项目中使用了OWIN,那么以上配置对OWIN仍然无效,需要nuget引入Microsoft.Owin.Cors包,配置如下:

[assembly: OwinStartup(typeof(WanWei.LMS.WebApi.Startup))]
namespace WanWei.LMS.WebApi
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // OWIN跨域
            app.UseCors(CorsOptions.AllowAll);

            ConfigureAuth(app);
        }
    }
}

且,通过OWIN跨域后就是整站跨域了,不在需要前面的microsoft.aspnet.webapi.cors包的配置。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 之前的文章,我们了解了 WebAPI 的 Basic 基础认证,在这一章,我们就来了解一下,如何解决 WebAPI...
    李九lijiu阅读 4,980评论 0 1
  • 1.web.config: 2.在每个controller加方法 public string Options() ...
    hptnt阅读 3,954评论 0 0
  • 在接口调用的时候,需要考虑到接口的跨域请求。 在web.config配置中添加几条配置即可 在部署到IIS上时,可...
    魏小厨阅读 3,693评论 0 0
  • 602 贾涵 尊敬的铁生: 您好! 说实话,我在读你这本书之前,我对你的文字了解甚少,只是对几篇太过有名的小说和...
    一花匠阅读 3,359评论 1 3
  • 人际关系是每个社会人都要面对的关系,如何正确处理好这个关系,有很多学问,而适度依赖是构建良好人际关系的桥梁...
    鸿运当头168阅读 3,372评论 0 0

友情链接更多精彩内容