gpt4 book ai didi

angularjs - 无法以 Angular 方式访问 $http 响应中的 'WWW-authenticate' header

转载 作者:行者123 更新时间:2023-12-02 23:45:56 24 4
gpt4 key购买 nike

谁能告诉我为什么我的“WWW-Authenticate” header 在响应中为空,尽管我可以在 Chrome 开发工具中看到字符串化的“WWW-Authenticate” header 对象?

在服务器端,我执行以下操作来设置 WWW-Authenticate header 并为 CORS 设置正确的 header :

res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
res.setHeader('Access-Control-Expose-Headers', 'WWW-Authenticate');
res.setHeader('WWW-Authenticate', JSON.stringify({
"token": "encryptedToken",
"message": "encryptedMessage"
}));

我相信我在服务器端正确设置了 header ,因为当我查看 Chrome 开发工具时,我在“响应 header ”下看到正在发出的请求的以下内容。

响应 header
访问控制允许来源:http://localhost:8080
访问控制公开 header :WWW-Authenticate
连接:保持事件
日期:2015 年 5 月 15 日星期五 13:48:29 GMT
ETag:W/“f7-1470611871”
WWW 身份验证:{"token":"encryptedToken","message":"encryptedMessage"}
X-Powered-By:Express

然而,当我尝试从响应中访问“WWW-Authenticate” header 时,我得到 NULL。

$http.get("http://localhost:4242/days")
.then(function (response) {
var AuthHeader = response.headers('WWW-Authenticate');
console.log (AuthHeader); // returns null
})

提前感谢您的帮助!

最佳答案

Access-Control-Expose-Headers header 可以设置为包含 www-authenticate。此 header 将允许客户端(包括 Angular)读取 CORS 请求上的这些响应 header 。

如果您使用的是 ASP.NET Web API,则可以直接在 System.Web.Cors.CorsPolicy.ExposedHeaders 参数上设置 exposedHeaders,也可以向 Controller 方法添加属性。属性方法描述于 Enabling Cross-Origin Requests in ASP.NET Web API 2 .

以下是使用 ASP.NET Web API 的几个示例。

示例:设置 ExposedHeaders 参数

var corsPolicy = new CorsPolicy();
corsPolicy.ExposedHeaders.Add("www-authenticate");

var corsOptions = new CorsOptions
{
PolicyProvider = new CorsPolicyProvider
{
PolicyResolver = context => Task.FromResult(corsPolicy)
}
};

app.UseCors(corsOptions);

示例:使用属性

[EnableCors(origins: "*", headers: "*", methods: "*", exposedHeaders: "www-authenticate")]
public class TestController : ApiController
{
// ...
}

如果您的 API 使用不同的框架,那么您需要研究该框架以了解如何设置 Access-Control-Expose-Headers header 。

关于angularjs - 无法以 Angular 方式访问 $http 响应中的 'WWW-authenticate' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30263154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com