小编典典

Angular Js-在标头上设置令牌默认

angularjs

我正在尝试向每个API调用添加带有访问令牌的标头。它适用于所有GET请求,但是一旦我尝试进行POST,便不会添加标头。

这是我添加令牌的方法:

app.factory('api', function ($http, $cookies) {
return {
    init: function (token) {
        $http.defaults.headers.common['Token'] = token || $cookies.loginTokenCookie;
    }
  };
});

从这里调用:

app.run(function ($cookies, $http, $location, $rootScope,api) {
    $rootScope.location = $location;
    api.init();
});

我尝试这样做如下:

app.factory('api', function ($http, $cookies) {
return {
    init: function (token) {
        $http.defaults.headers.common['Token'] = token || $cookies.loginTokenCookie;
        $http.defaults.headers.post['Token'] = token || $cookies.loginTokenCookie;

    }
};
});

但这也不起作用。它仅在我如下更改标题键名称时才有效:

 $http.defaults.headers.post['Token-Post'] = token || $cookies.loginTokenCookie;

如何在AngularJs中为帖子分配默认标题并获取请求?


阅读 219

收藏
2020-07-04

共1个答案

小编典典

与其将令牌放在每个服务(或调用)内部的标头上,不如使用$http拦截器(docs在此处)。

然后,您可以将令牌放置在每个请求上。无论请求是GET还是POST,这都将起作用。

JS示例:

$httpProvider.interceptors.push(function($q, $cookies) {
    return {
     'request': function(config) {

          config.headers['Token'] = $cookies.loginTokenCookie;
          return config;
      }
    };
  });
2020-07-04