【发布时间】:2018-04-09 11:23:10
【问题描述】:
我有一个 ASP.NET Web API。我正在使用 Angular 4 做一个简单的 http 请求:
getInfo(url: string)
{
this.http.get<MyResponse>(url).map((resultModel: MyResponse) => {
return resultModel;
});
}
我因此订阅了回复:
this.getInfo()
.subscribe(
result => {
if(wasSuccess(result))
{
do things
},
error => {
if(error.status == 401)
{
var url = error.headers["x-login_page"];
window.location.href = url;
}
}
);
我在 ASP.NET Web API 控制器中启用了 CORS。
查看 Chrome 中的网络响应,我发现 CORS 允许正确存在,我想阅读的自定义标头条目 (x-login_page) 也是如此:
Screenshot of Chrome Network Output
但是,当我尝试使用访问 x-login_page 的自定义标头值时
var url = error.headers["x-login_page"];
网址未定义。当我在 Chrome 调试器中查看错误对象时,我看到错误对象是一个 HttpErrorResponse 对象:
如果我展开标头,您会发现它们与网络响应中显示的标头完全不同:
我想不出一种方法来获取错误捕获中的实际 http 标头,而不是一些替代标头。接受任何和所有建议。谢谢!
【问题讨论】:
标签: angular