gpt4 book ai didi

AngularJS HTTP GET 请求返回缓存数据

转载 作者:行者123 更新时间:2023-12-01 01:59:25 25 4
gpt4 key购买 nike

在我的 AngularJS 应用程序中,我正在发送 HTTP GET 请求,如下所示。

MyService.HttpReq("testUrl", "GET", null);
HttpReq方法在服务中定义并实现如下:
this.HttpReq = function(URL, method, payload)
{
$http({
url: URL,
method: method,
cache: false,
data: postData,
headers: {
'Content-Type': 'application/json',
}
}).success(function(response)
{
console.log("Success: "+JSON.stringify(response));

}).error(function(data, status)
{
console.error("Error");

});
}

首先,这是在 AngularJS 中发送 HTTP 请求的正确方式吗?
我面临的问题是,有时我将缓存数据作为响应,而 HTTP 请求未命中服务器。可能是什么问题?

更新

根据评论和答案,我已经更新了我的 HTTP 请求代码,如下所示,但仍然遇到同样的问题。
this.HttpReq = function(URL, method, payload)
{
$http({
url: URL,
method: method,
cache: false,
data: payload,
headers: {
'Content-Type': 'application/json',
'Cache-Control' : 'no-cache'
}
}).
then(
function(response)
{
var data = response.data;
console.log("Success: "+JSON.stringify(data));
},
function(response)
{
var data = response.data || "Request failed";
var status = response.status;
console.error("Error: "+JSON.stringify(data));
}
);
}

最佳答案

即使我们向响应添加缓存控制 header ,IE 浏览器也会捕获 ajax get 请求。我发现解决问题的唯一方法是向请求添加一些随机参数。即使您发送额外的参数,请确保 api 没有问题

 MyService.HttpReq("testUrl?ts=" + Date.now(), "GET", null);

关于AngularJS HTTP GET 请求返回缓存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37836616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com