Angular.js即ajax请求问题

时间:2014-08-18 13:24:26

标签: javascript ajax angularjs

我有一个与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。

1 个答案:

答案 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) {
    });

};