这是我想为每个http请求添加auth令牌和idx的交易
当我尝试获得TypeError: Cannot set property 'site' of undefined
时
这是拦截器
$httpProvider.interceptors.push(function($q, $cookies,$location) {
return {
'request': function(config) {
config.data.auth ='hasAuth';
config.data.token = $cookies.token;
config.data.idx = $cookies.idx;
console.log(config);
return config;
}
};
});
这是$ http请求。
app.controller('coolCtrl', function($scope, $http, makeUrl, $cookies){
var info={};
info = $cookies.eidx;
var test = $http.post("https://example.com/uri/list", info )
.success(function (data) {
$scope.data = data
});
});
错误
TypeError: Cannot set property 'auth' of undefined
我觉得我在所有的承诺中混淆了 提前谢谢你 -James
答案 0 :(得分:0)
经过大量的调试后,我终于明白了。
$httpProvider.interceptors.push(function($q, $cookies,$location) {
return {
'request': function(config) {
if (typeof config.data !== undefined){
config.data.auth ='hasAuth';
config.data.token = $cookies.token;
config.data.idx = $cookies.idx;
console.log(config);
}
return config;
}
};
});
angular正在尝试设置config.data.auth,当它发出包含无数据请求的任何请求时。所以我必须手动检查数据,然后设置它。