这是我在我的hapijs应用程序中的Cors配置:
"connections": [
{
"port": 8067,
"routes": {
"cors": {
"credentials": true,
"origin": ["*"]
}
}
}
],
我正在使用hapi-auth-cookie
从angular.js前端的POST验证用户身份。一旦登录发生,我发送一个请求以获取项目列表,但项目的GET请求返回401。
这是我的角度设置:
$http.get('http://localhost:8067/projects', {withCredentials: true})
.success(function(data) {
deferred.resolve(data);
}).error(function(data,status,error,config){
deferred.reject(data);
});
答案 0 :(得分:1)
似乎角度$http
模块存在一些问题(请参阅:https://github.com/angular/angular.js/blob/master/src/ng/http.js#L929-L931)如果您将withCredentials
传入$http.get('url_here', config)
(调用的配置部分) ,它永远不会被设定。
相反,要解决此问题,只需使用以下代码:$http.defaults.withCredentials = true;
答案 1 :(得分:0)
我确实认为withCredentials已在配置中正确设置,我怀疑问题可能与其他内容有关。
http://plnkr.co/edit/KACel8uVOuYnNTH9izuu?p=preview
您共享的Wrt代码,config正在扩展requestConfig对象(第904行)。因此,只要在请求配置中设置它就应该没问题。
var config = extend({
method: 'get',
transformRequest: defaults.transformRequest,
transformResponse: defaults.transformResponse,
paramSerializer: defaults.paramSerializer
}, requestConfig);