gpt4 book ai didi

javascript - 如何使用javascript取消http请求

转载 作者:数据小太阳 更新时间:2023-10-29 04:39:17 28 4
gpt4 key购买 nike

我有一个页面,其中有一个事件处理程序附加到 onclick 事件。当事件触发时,它会将文本框的内容传递给 GET 请求。因为 url 不在同一个域中 所以我创建了一个脚本标记并将 url 附加到它的源,就像这样

elem.onclick=fire;

function fire()
{
var text=document.getElementById('text').value;
var script=document.createElement("script");
script.className="temp";
script.src="some url"+"?param="+text;
document.body.appendChild(script);
}

现在如果该事件被触发并且不止一次我想取消所有以前的 GET 请求(因为他们仍然可能收到响应)并制作 GET请求最新文本。但是为此我需要取消之前的请求。我试过了

document.body.removeChild(script);
script.src=null;

但这在 Firefox 中不起作用(我使用的是 Firefox 5)尽管这在 Google Chrome 中有效.有谁知道这些请求是否可以在 Firefox 中取消?如果可以,如何取消?


更新正如 Alfred 所建议的那样,我使用了 window.stop 来取消请求但没有取消请求而是挂断了它。这意味着当我查看 Firebug 时,它看起来像是正在发出请求但没有响应。

最佳答案

解决方案很简单:要创建 HTTP 请求,请使用 <img>而不是 <script>元素。此外,您始终必须更改 src same 元素的属性。

var img;
function fire()
{
var text = document.getElementById('text').value;
var im = img || (img = new Image());
im.src = "url"+"?param="+text;
}

您可以通过执行以下操作来确定它是否确实有效:您请求的 URL 应该有很长的响应时间(您可以使用例如 PHP 的 sleep 函数来确保这一点)。然后,在 Firebug 中打开 Net 选项卡。如果多次单击该按钮,您会看到所有未完成的请求都已中止。

关于javascript - 如何使用javascript取消http请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865574/

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