Asp.net web api 如何在ASP.NET Web API自宿主应用程序中使用CORS?

Asp.net web api 如何在ASP.NET Web API自宿主应用程序中使用CORS?,asp.net-web-api,cors,Asp.net Web Api,Cors,我正在尝试将ASP.NET Web API自托管应用程序与CORS一起使用,但出现错误: 无法加载XMLHttpRequest。访问控制允许原点不允许原点为null 如何处理它?WebAPIContrib项目有一个简单的Cors。或者,如果您正在寻找更复杂的解决方案,则该项目具有CORS支持。添加类 public class CustomHeaderHandler : DelegatingHandler { protected override Task<HttpResponseM

我正在尝试将ASP.NET Web API自托管应用程序与CORS一起使用,但出现错误:

无法加载XMLHttpRequest。访问控制允许原点不允许原点为null


如何处理它?

WebAPIContrib项目有一个简单的Cors。或者,如果您正在寻找更复杂的解决方案,则该项目具有CORS支持。

添加类

public class CustomHeaderHandler : DelegatingHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken)
    {
    return base.SendAsync(request, cancellationToken)
        .ContinueWith((task) =>
        {
            HttpResponseMessage response = task.Result;
            response.Headers.Add("Access-Control-Allow-Origin", "*");
            return response;
        });
    }
}

您还可以通过从安装Microsoft.AspNet.WebApi.Cors软件包来实现这一点

这将允许您的API启用
跨源资源共享(CORS)
。你可以这样做:

 var config = new HttpSelfHostConfiguration(_baseAddress);
 config.EnableCors(new EnableCorsAttribute("*", headers: "*", methods: "*"));

@这对我来说不起作用的神经,我仍然得到,“XMLHttpRequest无法加载请求的资源上不存在‘访问控制允许源代码’头。因此不允许源代码“”访问。”@SeyedMortezaMousavi现在CORS支持也在Web API中烘焙。
 var config = new HttpSelfHostConfiguration(_baseAddress);
 config.EnableCors(new EnableCorsAttribute("*", headers: "*", methods: "*"));