gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 15:44:37 26 4
gpt4 key购买 nike

我在 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/

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