Asp.net WebApi 2.2跨源支持
我正在尝试将CORS支持添加到我的API中。我已经添加了nuget包Microsoft.AspNet.WebApi.Cors。我已将其添加到我的WebgApiConfig.cs文件中的注册表中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-
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}