gpt4 book ai didi

angularjs - 添加 Stormpath Angular SDK 后出现 CORS 问题

转载 作者:行者123 更新时间:2023-12-04 02:16:01 24 4
gpt4 key购买 nike

我正在开发 SPA MEAN 应用程序,我正在针对 Apiary 模拟 API 开发它,它具有以下 CORS header 集:

Access-Control-Allow-Methods → OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT
Access-Control-Allow-Origin → *
Access-Control-Max-Age → 10

一切正常,angular 可以使用 $http angular 服务访问它。但是,在添加 Stormpath Angular SDK 之后,所有这些请求都失败并出现以下错误:

XMLHttpRequest cannot load https://xxx.apiary-mock.com/workshops?type=favourite. Credentials flag is 'true', but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials. Origin 'http://localhost:8000' is therefore not allowed access.

我想弄清楚为什么这些请求被拒绝,以及这些 header 是在什么时候添加的?

最佳答案

感谢您发现这个问题。 Stormpath Angular SDK 确实有一个拦截器,它为所有请求设置 withCredentials: true 标志。请看代码here .

目的是确保始终发送我们的身份验证 cookie,即使在跨域情况下也是如此。但我可以看出,如果您的 Angular 应用程序正在与不需要发送 cookie 的其他 API 对话,这将是一个问题。

作为一种解决方法,您可以通过简单地添加另一个拦截器来覆盖我们的拦截器:

angular.module('myapp', [
'stormpath',
'stormpath.templates'
]).config(function ($httpProvider) {
$httpProvider.interceptors.push(function() {
return {
request: function(config) {
config.withCredentials=false;
return config;
}
};
});
});

我创建了一个问题来讨论更好的解决方案:https://github.com/stormpath/stormpath-sdk-angularjs/issues/72

关于angularjs - 添加 Stormpath Angular SDK 后出现 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33593514/

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