我在使用$ http调用API时获得了缓存结果。这是AngularJS代码:
$scope.validate = function(){
var encodedUserNameAndPassword = Base64.encode($scope.username + ':' + $scope.password);
var decode = Base64.decode(encodedUserNameAndPassword);
$http.defaults.headers.put = {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS',
'Access-Control-Allow-Headers': '*'
};
$http.defaults.headers.common['Authorization'] = 'Basic ' + encodedUserNameAndPassword;
$http({method: 'GET', url: 'http://127.0.0.1:5000/user/jim',cache:false}).
success(function(data, status, headers, config) {
console.log(data);
}).
error(function(data, status, headers, config) {
alert(data);
});
}
任何人都可以指出我所缺少的东西。
答案 0 :(得分:0)
不要在控制器内部进行$ http提供程序修改。请在配置级别为angular。
var myModule = angular.module('myModule',[]);
myModule.config(['$httpProvider', function($httpProvider) {
//initialize get if not there
if (!$httpProvider.defaults.headers.get) {
$httpProvider.defaults.headers.common = {};
}
$httpProvider.defaults.headers.common["Cache-Control"] = "no-cache";
$httpProvider.defaults.headers.common.Pragma = "no-cache";
$httpProvider.defaults.headers.common["If-Modified-Since"] = "0";
}]);
大多数时候,GET请求都是由IE缓存的。
然后在$ http调用参数
中$http({method: 'GET',
url: 'http://127.0.0.1:5000/user/jim',
headers: {
'Authorization': 'Basic '+ encodedUserNameAndPassword}
}
}).
success(function(data, status, headers, config) {
console.log(data);
}).
error(function(data, status, headers, config) {
alert(data);
});
希望这对你有所帮助。