我是 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);
}
};
}]);
我创建的其余 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(禁止)
我决定在所有 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 操作中发送标头,我应该在拦截器中进行哪些更改?