在另一个 ajax 成功中调用 jquery ajax 的问题
Issue to invoke jquery ajax within the another ajax success
我在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调用后收到此警报消息。 循环结束后,我收到此警报消息警报("成功!因此,ajax 是在循环结束后调用的。所以我需要先调用 ajax。如何实现此方案。
实际上,您的 ajax 调用实际上是在第二条警报消息之前调用的("在 ajax 调用之后")。但是,由于 AJAX 代表异步等,在处理 ajax 请求时,脚本的其余部分已经执行。因此,如果您希望在 ajax 调用后执行代码,请将其包装在一个函数中,并在成功块中调用该函数(或者只是将代码移动到成功回调中)。例:
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文档告诉我们的那样:
跨域请求和数据类型:"jsonp"请求不支持同步操作。
看起来你两者都有...因此,要么不使用 jsonp 数据类型,也不要使用跨域请求,要么将要在 ajax 调用后执行的代码包装在成功块中,如上例所示。
根据 jQuery.ajax 文档,dataType: "jsonp"
请求不支持同步操作,因此async: false
不起作用。你需要按照乔治的描述去做。
相关文章:
- 在FrontEndphp-ajax-jquery中验证reCaptcha-google
- AJAX jquery json将数组发送到php
- 如何使用Ajax/jQuery设置cookie
- PHP/Ajax/jquery/JON-在Ajax Post之后将echo文本中的一部分作为变量返回
- 如何使用Ajax JQuery.ech()获取JSON值
- 使用springform时,如何在ajax/jquery中获取复选框值
- JSP AJAX jQuery填充表问题
- Piping Value: Ajax + JQuery
- 使用javascript Without Ajax/Jquery在特定行中启用文本框
- 在AJAX jQuery加载()之后运行jQuery代码
- 具有动态更新的实时标题 (AJAX+jQuery)
- ajax/jQuery Youtube 播放列表推送
- AJAX jQuery Avatar Uploading
- 全局变量 - AJAX jQuery
- Ajax jquery mysqli update
- 获取剩余时间和上传文件速度 - ajax jquery/js
- 使用ajax/jquery绑定Json数据
- TypeError Obj.root是未定义的ajax jquery
- 当数据类型为XML时,如何将url参数传递给AJAX jquery
- 在ajax Jquery之后无法获取隐藏字段的值