我在完成处理程序中有我正在做的$ .ajax请求:
var location = xhr.getResponseHeader('Location');
这是一个跨域请求,它曾经工作过,但它在最近的部署中停止了。
现在返回null。我仍然可以访问部署和登台环境,并且一直在检查请求以找出更改的内容。
似乎在工作环境中包含以下标题:
Access-Control-Expose-Headers:Location
后端是ASP.NET Web API v2。
在查看更改时,我唯一能看到的是我们改变的是从HttpConfiguration Cors支持转移到Owin Cors。
在:
var cors = new EnableCorsAttribute("*", "*", "*", "Location");
configuration.EnableCors(cors);
后:
app.UseCors(CorsOptions.AllowAll);
是否可以使用Owin.UseCors将Location头设置为公开?
答案 0 :(得分:0)
我在Katana存储库中发现了类似的内容,并尝试了一下。它解决了我将问题添加到ExposedHeaders的问题。
var policy = new CorsPolicy
{
AllowAnyHeader = true,
AllowAnyMethod = true,
AllowAnyOrigin = true,
SupportsCredentials = true,
};
policy.ExposedHeaders.Add("Location");
CorsOptions = new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(policy)
}
};