AngularJS未发送验证标头
我正在尝试创建一个拦截器,如果每个请求上都存在一个用户令牌,那么该令牌存在,但它不会发送它。。。调用完成后,我查看F12(Chrome开发工具)调用和授权标头不在那里 但是如果我一步一步地调试它,我可以看到config.headers.authority中有我的令牌。。。但仍然没有通过请求发送它。。。我可以请求一些帮助吗 这是我的拦截器AngularJS未发送验证标头,angularjs,header,Angularjs,Header,我正在尝试创建一个拦截器,如果每个请求上都存在一个用户令牌,那么该令牌存在,但它不会发送它。。。调用完成后,我查看F12(Chrome开发工具)调用和授权标头不在那里 但是如果我一步一步地调试它,我可以看到config.headers.authority中有我的令牌。。。但仍然没有通过请求发送它。。。我可以请求一些帮助吗 这是我的拦截器 $httpProvider.interceptors.push(function($q, $location, $cookies){ return {
$httpProvider.interceptors.push(function($q, $location, $cookies){
return {
request: function(config){
config.headers = config.headers || {};
let token = $cookies.get('user');
if (token) {
config.headers.Authorization = 'Bearer ' + token;
}
return config;
},
response: function(response){
return response;
},
responseError: function(response){
if(response.status === 401 || response.status === 403){
$location.path('/login')
}
return $q.reject(response);
}
}
})
CORS配置
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type,Authorization');
next();
}
在发送之前进行配置
请求/恢复飞行前
确保您的
选项
请求不需要“身份验证”,您会没事的。声明应排除用户凭据
如果HTTP状态401
已由OPTIONS
请求返回,则客户端不应发送子请求。但似乎有些浏览器有一个bug。即使OPTIONS
请求返回401
,此浏览器也会发送子请求
在
node.js
中,您可以通过使用req.method===“OPTIONS”
检查请求方法飞行前选项请求返回访问控制允许标题:X-Requested-With,Content-Type,Authorization
?是,这些是我放在服务器端的允许的头文件,您可以尝试console.log(config)代码>正上方返回配置代码>你的配置在里面吗?现在我觉得一切都很好。好吧,我刚刚把照片附在了OP上,我也觉得很好,我在飞行前的牙齿上附加了req/res,这解决了我的问题,我刚刚添加了这个if(req.method==“OPTIONS”)res.sendStatus(200);else next();