Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net WebApi 2.2跨源支持_Asp.net_Cors_Asp.net Web Api2 - Fatal编程技术网

Asp.net WebApi 2.2跨源支持

Asp.net WebApi 2.2跨源支持,asp.net,cors,asp.net-web-api2,Asp.net,Cors,Asp.net Web Api2,我正在尝试将CORS支持添加到我的API中。我已经添加了nuget包Microsoft.AspNet.WebApi.Cors。我已将其添加到我的WebgApiConfig.cs文件中的注册表中 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 我还尝试在控制器上进行配置。无论我做什么尝试,访问控制允许源标题都不会添加到响应中,当我执行javascript时,我在Chrome中会收到此消息 No 'Access-Control-

我正在尝试将CORS支持添加到我的API中。我已经添加了nuget包Microsoft.AspNet.WebApi.Cors。我已将其添加到我的WebgApiConfig.cs文件中的注册表中

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
我还尝试在控制器上进行配置。无论我做什么尝试,访问控制允许源标题都不会添加到响应中,当我执行javascript时,我在Chrome中会收到此消息

No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost:19560' is therefore not allowed access. The response had HTTP status code 401
有没有想过我可能会错过什么

现在,如果我设置ajax contentType,它就可以工作了 contentType:“文本/普通”


显然,这是必要的,因为没有任何路线处理来自浏览器的飞行前选项请求。现在我需要弄清楚如何处理飞行前选项检查,这样我就不必设置contentType。

这是一个非常好的教程,提供了通过CORS实现跨源支持的解决方案:

它实际上只是一个要安装的nuget软件包:

Install-Package Microsoft.Owin.Cors
在Startup.cs中,修改配置,使其包含以下内容:

public void Configuration(IAppBuilder app)
{
  app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
  ConfigureAuth(app);
}

我发现了我的问题。在我的公司网络上,我们使用Kerberos身份验证。我需要添加jQuery ajax选项
xhrFields:{withCredentials:true}