代码“var location = xhr.getResponseHeader('Location');”停止工作

时间:2014-08-17 18:56:29

标签: owin

我在完成处理程序中有我正在做的$ .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头设置为公开?

1 个答案:

答案 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)
    }
};