gpt4 book ai didi

javascript - 纯 JS 中的 AJAX 完整处理程序

转载 作者:行者123 更新时间:2023-11-29 18:08:42 25 4
gpt4 key购买 nike

我在纯 Javascript 中使用 AJAX,如果失败则返回 false 否则返回 json 数据:

    var responsefromURL = loadAjaX(url);
if(responsefromURL != false)
{
alert("Failed to fetch Data from URL. (Store/Store)");
}
else
{
this.prepareStoreFromJSON(responsefromURL);
}

由于 Javascript 是异步的,responseFromURL 不会尽快加载。在 jQuery 中,我可以使用 ajax.complete 协议(protocol)。我如何在纯 Javascript 中做到这一点? 我想从不同的函数加载 AJAX,因为我有很多实现它的方法,所以不能一遍又一遍地键入相同的 AJAX 代码。

In response to comment from Banana,

我们可以这样做:

 ajax.open("GET",url,false);

But, most browsers have this feature disabled and throw error : Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.

最佳答案

让我们假设这是您的 AJAX 函数:

function loadAjaX(url, callback)
{
var ajax;
if (window.XMLHttpRequest) {
ajax = new XMLHttpRequest();
} else {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
ajax.onreadystatechange = function() {
if (ajax.readyState==4 && ajax.status==200) {
callback(ajax.responseText);
}
}
ajax.open("GET",url,true);
ajax.send();
}

现在您可以在完成时使用 response 调用您的回调方法:

loadAjaX(url, callback);

关于javascript - 纯 JS 中的 AJAX 完整处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29427189/

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