javascript - 在另一个 ajax 成功中调用 jquery ajax 的问题

标签 javascript jquery ajax

我在 ajax 成功函数中有以下代码。

$.each(data,function(index,element){                            
$.ajax({                
            type: 'GET',                    
            url: "http://192.168.1.56/SampleAjaxCall/sample.svc/sampleFunciton",                    
            contentType: 'application/json; charset=utf-8',
            dataType: 'jsonp',
            async: false,
            success:function(response){ 

                    alert("Success !");   // invokes after the loop     
            }           
        }); 

        alert("After the ajax call");     // invokes first
});

首先,我收到此警报消息在 ajax 调用之后。循环结束后,我收到此警报消息 alert("Success !")。所以ajax是在循环结束后调用的。所以我需要先调用ajax。如何实现这个场景。

最佳答案

实际上,您的 ajax 调用实际上是在第二条警报消息(“ajax 调用之后”)之前调用的。但是,由于 AJAX 代表异步等,在处理 ajax 请求时,脚本的其余部分已经执行。因此,如果您希望在 ajax 调用之后执行代码,请将其包装在一个函数中,然后在 success block 中调用该函数(或者只是将代码移动到 success 回调中)。示例:

var after_call_func = function() {
    alert("After the ajax call");
};

$.each(data,function(index,element){                            
    $.ajax({                
        // your ajax configuration
        success:function(response){ 
            alert("Success !");
            after_call_func(); // call the function when ajax is complete
        }           
    });
});

编辑

我现在注意到您已将 async 选项设置为 false,这很可能就是您希望警报在 ajax 调用之后执行的原因...但是,正如 jQuery documentation告诉我们:

Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation.

看起来你两者都有...所以要么不使用 jsonp 数据类型,也不使用跨域请求,或者将 ajax 调用之后要执行的代码包装在 success block 中,如上面的示例.

关于javascript - 在另一个 ajax 成功中调用 jquery ajax 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22785532/

相关文章:

php - jQuery text() 使用 nl2br 忽略 <br/>

javascript - 为伪类设置动画

javascript - 如何将div精确设置在尺寸动态变化的屏幕中央

jquery - AJAX POST 中的 QueryDict 始终为空

php - 与 admin-ajax.php 相关的加载时间问题(带有 PINGDOM 结果链接)

php - 如何在 Symfony 中强制重新加载 javascript/css?

javascript - 如何在 grpc-web 中将枚举值转换为字符串

javascript - HTML 5 灰度滤镜不起作用

javascript - 如何将 Google Analytics api 响应放入工作表中?

javascript - 未调用 onreadystatechange 的 XMLHttpRequest 原型(prototype)