我跟着this article在Node.js中使用令牌构建了一个web api:
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (token) {console.log("passed!");}
else
{console.log("No token provided.");}
我使用Postman测试并尝试使用http://localhost:3000?token=eyJ0eXAiO 一切正常,但在客户端调用API时:
app.controller('myCtrl', function($scope, $http, $cookies) {
var apikey=$cookies.get('apikey');
$http({url: 'http://localhost:3000/', method: 'GET', headers: {'x-access-token': apikey}})
.success(function (data) {
console.log(data);
}).error(function(error){console.log(error);});
和jquery调用:
jQuery.ajax( {
url: 'http://localhost:3000/',
type: 'GET',
beforeSend : function( xhr ) {
xhr.setRequestHeader( 'x-access-token', 'eyJ0eXAi');
},
success: function( response ) {
console.log(response);
},
error : function(error) {
console.log(error);
}
} );
每个Angular或jquery都不起作用并返回"没有提供令牌。"
我错过了什么?请帮帮我。
以下是req.headers的标题 Angular.JS
{host:' localhost:3000', 连接:'保持活力', '缓存控制':' max-age = 0', '访问控制请求方法':' GET', 来源:' localhost:3001', '用户代理':' Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML, 像Gecko)Chrome / 43.0.2357.132 Safari / 537.36', ' access-control-request-headers':' accept,max-age,x-access-token', 接受:' / ', referer:' localhost:3001', '接受编码':' gzip,deflate,sdch', ' accept-language':' en-CA,en; q = 0.8,en-US; q = 0.6,zh-CN; q = 0.4,zh; q = 0.2,zh-TW ; q = 0。 2' } 没有提供令牌。
邮差
{host:' localhost:3000', 连接:'保持活力', csp:'活跃', '缓存控制':' no-cache', ' x-access-token' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoibGF3cmVuY2 UiLCJwYXNzd29yZCI6InNreTIwMDAiLCJhZG1pbiI6dHJ1ZSwiaWF0IjoxNDM2Mzc0NTYzLCJleHAiOj E0MzY0NjA5NjN9.OycP6xdUlG3vLyZHcj4rLjyYKE1GnlWc3h-f0r1ZpZ0&#39 ;, '用户代理':' Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML, 像Gecko)Chrome / 43.0.2357.132 Safari / 537.36', ' postman-token'' ab2a26e3-f6a1-09e0-c21a-85e3cef0aff5', 接受:' / ', '接受编码':' gzip,deflate,sdch', ' accept-language':' en-CA,en; q = 0.8,en-US; q = 0.6,zh-CN; q = 0.4,zh; q = 0.2,zh-TW ; q = 0。 2' } 通过!
答案 0 :(得分:0)
原来这是Chrome问题,必须使用--disable-web-security运行Chrome,然后标头请求才有效。