Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拦截器-令牌-AngularJS_Javascript_Angularjs_Node.js_Angular Http Interceptors - Fatal编程技术网

Javascript 拦截器-令牌-AngularJS

Javascript 拦截器-令牌-AngularJS,javascript,angularjs,node.js,angular-http-interceptors,Javascript,Angularjs,Node.js,Angular Http Interceptors,我是AngularJS的新手,我创建的拦截器和restAPI有问题 拦截器代码如下: factory('AuthInterceptor', ['$q', '$location', '$localStorage', function ($q, $location, $localStorage) { return { 'request': function (config) { config.headers = config.headers || {}

我是AngularJS的新手,我创建的拦截器和restAPI有问题

拦截器代码如下:

factory('AuthInterceptor', ['$q', '$location', '$localStorage', function ($q, $location, $localStorage) {
    return {
        'request': function (config) {
            config.headers = config.headers || {};
            if ($localStorage.token) {
                config.headers["Authorization"] = 'Bearer ' + $localStorage.token;
            }
            console.log($localStorage.token);
            console.log(config);
            return config;
        },
        'responseError': function (response) {
            if (response.status === 401 || response.status === 403) {
                $location.path('/login');
            }
            return $q.reject(response);
        }
    };
}]);
我创建的rest api中的调用与此类似:

$http.get('/api/producto/', {headers: {'x-access-token': $localStorage.token}})
            .success(function (data) {                    
            })
            .error(function (data) {
                console.log('Error: ' + data);
            });
如果我将{headers:{'x-access-token':$localStorage.token}}发送到$http,restapi工作正常,但是如果我删除它,它将失败,并出现错误403(禁止)

我决定将其添加到all GET API中,但对于POST,它并没有像我预期的那样工作。我的POST api如下所示:

var formData = {
        cliente: $scope.newCliente,
        headers: {'x-access-token': $localStorage.token}
    };

    $http.post('/api/cliente', formData)
        .success(function (data) {
            ....
        })
        .error(function (data) {
            console.log('Error: ' + data);
        });

我做错了什么?为了不在GET或POST操作中发送头,我应该在我的拦截器中更改什么?

在拦截器中设置授权头,但在GET请求中设置x-access-token。在拦截器中设置所需的标头(x-access-token),这是正确的,非常感谢它现在可以工作了:)