我有一个与IE的angular.js ajax调用问题。我第一次做这个请求,一切都很好(我得到了很好的结果)。但是当我在不刷新页面的情况下进行其他ajax调用(相同请求)时,结果看起来与第一次调用相同,即使它不应该相同。
这是我的请求的样子:
this.getemploye = function (isaftersave) {
$http({
url: 'Contact.svc/getemployee',
method: "GET"
}).success(function (data) {
//The data result is always the same with IE.
});
};
请注意,我对Chrome和FireFox没有任何问题。 IE的版本是11。
答案 0 :(得分:2)
IE将积极缓存所有ajax调用(实际上几乎所有内容)。您需要在服务器的HTTP响应标头上设置缓存选项。
如果您不想缓存它,则需要将Cache-Control标头添加到从服务器发送的ajax响应中。
Cache-Control: no-cache, no-store
作为额外措施,您应该在$ http调用中设置cache:false
$http.get('https://api.myapp.com/someresource', { cache: false });
如果您无法修改服务器,则每次都可以在网址上附加一个随机查询字符串。这会强制IE重新发出请求,因为它不会看到以前的网址。
this.getemploye = function (isaftersave) {
$http({
url: 'Contact.svc/getemployee?nocache=' + new Date().toISOString(),
method: "GET"
}).success(function (data) {
});
};