gpt4 book ai didi

javascript - 返回 JSON 的 URL 的 AJAX 轮询似乎没有返回新的响应(使用 jQuery $.ajax() 方法)

转载 作者:行者123 更新时间:2023-11-30 07:48:15 25 4
gpt4 key购买 nike

我的项目需要使用 AJAX 轮询某个 URL 以获得 JSON 响应。我发出的第一个 AJAX 请求提醒服务器我需要一些 JSON 内容,它开始构建和缓存响应,为每个后续的 AJAX 请求发回 { "status": "pending"} 直到 JSON 准备就绪。那时,响应更改为 JSON,其中包含我可以解析并在文档中显示的内容,我想在 URL 返回除 { "status": "pending"} 之外的任何内容时立即执行此操作em>.

我已经设置了一个轮询函数,它按预期工作,可以从 URL 重复请求 JSON。然而,问题是它继续得到响应 { "status": "pending"} 即使我直接导航到 URL 并且可以看到完整的 JSON 响应已准备就绪并且正在提供.出于某种原因,我的轮询函数仍然得到 { "status": "pending"}

当我刷新包含轮询代码的页面时,它通常会处理第一个请求 - 即它会获得完整的 JSON 响应。这让我相信这是某种缓存问题,但我不确定在哪里或为什么。每个 AJAX 请求不应该得到一个新的响应,或者这是我可以在我的 $.ajax() 调用中设置的东西吗?

这是我现在使用的代码:

function ajax_poll() {
$.ajax({
url: JSON_URL, // JSON_URL is a string containing the URL to poll
dataType: 'json',
error: function(xhr_data) {
display_error();
},
success: function(xhr_data) {
if (xhr_data.status == 'pending') {
poll++; // increment poll counter // poll is a global variable to track the number of requests made
if (poll < POLLS) { // POLLS is a global variable to set the maximum number of requests
setTimeout(function() { ajax_poll(); }, INTERVAL); // wait INTERVAL before another AJAX request
} else {
display_error();
}
} else {
success(xhr_data);
}
},
contentType: 'application/json'
});
}

success() 是在页面上显示 JSON 内容(即我在轮询时等待可用的内容)的函数。

值得注意的是,在本地测试代码时,轮询本地 .json 测试文件,我可以将文件内容从 { "status": "pending"} 更改为包含以下内容的响应像我正在寻找的内容一样,在轮询实例之间保存文件,在下一次轮询中,我的代码会看到新内容并按预期工作。它只是在暂存环境中不起作用。

最佳答案

您可以尝试添加"cache: false" option .

关于javascript - 返回 JSON 的 URL 的 AJAX 轮询似乎没有返回新的响应(使用 jQuery $.ajax() 方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1412901/

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