为什么我无法从响应中访问 Angular2 中的所有标头?
我有一个无法修改的旧版 Web 服务。
它将一些重要信息发送回客户端响应标头。别问我为什么。这是废话。
我的代码是这样的:
.subscribe((r: Response) => {
var customHeader = r.headers.get("Database-Deleted");
var allHeadersAsString = JSON.stringify(r.headers);
但似乎响应只包含几个标头,而不是全部。
有人可以告诉我这是设计使然并且无法访问它们吗?
(或者更好:告诉我如何让它发挥作用)
UPDATE
感谢上面的评论,我能够将其识别为 CORS 问题。其他问题的接受答案没有给我正确的线索。
THANKS!
它确实是一个CORS问题。谢谢n00dl3为你评论!
如果服务器(在本例中是 C# WebAPI)允许显式公开自定义标头,那么 Angular2 就允许我访问它们。
这个网站帮助了我:http://datawalke.com/c/webapi-owin-cors-and-custom-headers/ http://datawalke.com/c/webapi-owin-cors-and-custom-headers/
Solution
为了进行测试,我能够允许所有来源并列出我需要的自定义标头。
var att = new EnableCorsAttribute("*", "*", "*");
att.ExposedHeaders.Add("Database-Deleted");
att.ExposedHeaders.Add("Database-AlreadyDeleted");
att.ExposedHeaders.Add("Database-DryRun");
att.ExposedHeaders.Add("Database-Inserted");
att.ExposedHeaders.Add("Database-Updated");
config.EnableCors(att);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)