javascript - Angularjs 设置授权 header

标签 javascript angularjs express

我试图在我的请求中添加一个授权 header ,但它不起作用。

我正在使用这个:

var config = {headers: {
  'Authorization': token
  }
};
return $http.get('http://localhost:3000/apis/users/all', config);

我也试过这个:

$http.defaults.headers.common['Authorization'] = token;

但是对于这两种情况,我都在后端请求中得到了这个 header :

Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:es-ES,es;q=0.8,ca;q=0.6,en;q=0.4,gl;q=0.2
Access-Control-Request-Headers:accept, authorization
Access-Control-Request-Method:GET
Connection:keep-alive
Host:localhost:3000
Origin:http://localhost:8000
Referer:http://localhost:8000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4)         AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36

我需要这样的东西:

Authorization: token

但是我得到了这个:

Access-Control-Request-Headers:accept, authorization

那么,我在任何地方都没有 token 值。

我在后端使用 expressjs,并将其用于 CORS:

app.use(function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
    next();
  });

还说使用 chrome 扩展 Advance Rest Client 进行测试它工作正常。在请求 header 中有一个 Authorization: valueOfToken..

非常感谢。

最佳答案

授权不能简单明了

指定它是Basic 还是 Bearer 授权

有点像

$http.defaults.headers.common['Authorization'] = 'Basic ' + token;

$http.defaults.headers.common['Authorization'] = 'Bearer ' + token;

关于javascript - Angularjs 设置授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32425107/

相关文章:

javascript - 将上一个和下一个按钮放在缩略图旁边

c# - 根据权限对 GridView 编辑发出警报

node.js - 当应用程序在 IIS 应用程序下运行时,IISNode 定义路由

angularjs - angular-ui-router 嵌套 View 和 "RangeError: Maximum call stack size exceeded"

javascript - oauth 中的 session 管理位置启用 Web 应用程序吗?

javascript - 如何在 chrome 中获取 JS 错误以显示正确的行号?

node.js - Express/Heroku - 在服务器 Web 应用程序而不是客户端 Web 应用程序上设置 Cookie

javascript - 内容 url 在 firefox 浏览器上不显示图像,是否有不需要删除 alt 标签的解决方法?

javascript - Node.js - 使用 JSON 对象作为变量

angularjs - Angular ui.router,创建一个可选的第一个路径参数