首页 > 解决方案 > 捕获 Ajax 调用并在失败时重复

问题描述

我是 Javascript 新手,正在尝试编写一个用户脚本来跟踪在特定网站内进行的所有 Ajax 调用,如果响应状态代码不是 200,我想自动重复该请求。此外,我想重复的这些请求都是 POST 请求,这可能会使它变得更加困难。

到目前为止,我正在跟踪所有 Ajax 调用,但由于似乎不可能捕获从 POST 请求发送的表单数据,所以我不知道如何重复失败的调用。


(function() { // Overriding XMLHttpRequest
    var oldXHR = window.XMLHttpRequest;

    function newXHR() {
        var realXHR = new oldXHR();

        realXHR.addEventListener("readystatechange", function() {
            console.log("an ajax request was made")
            console.log(realXHR.status)
            //If the status is not 200, repeat the request with same data etc
        }, false);

        return realXHR;
    }

    window.XMLHttpRequest = newXHR;
})();

标签: javascriptjqueryajaxpostrequest

解决方案


您可以通过再次调用相同的函数来尝试

if(realXHR.status !==200){
 newXHR();
}

推荐阅读