这是一个函数,我必须通过ajax调用写入一个xml文件。该代码在第一次进行ajax调用时工作正常。在每个循环的第二个循环中,ajax调用完全没有进行。我不知道为什么。我指定asyn为false。这没有帮助。无论如何,这似乎不是问题。每个循环jQuery中的Ajax调用
$('#'+divid).children('div').children('div').each(function() {
var url = $(this).find('a');
var urlname = url.text();
var urllink = url.attr('href');
var urlid = $(this).attr('id');
alert ("from javascript urlid: "+urlid+" urlname: "+urlname+" urllink: "+urllink);
$.ajax({
url: "add_url.php",
type: "POST",
data: { nodeid: divid, urlid: urlid, urlname: urlname, urllink: urllink },
cache: false,
async: false,
success: function (response) {
if (response != '')
{
alert(response);
}
}
});
});
设置'异步:在FALSE' ajax调用不会产生影响,因为ause你正在循环一个自己的函数,这是由jQuery异步调用遍历所有元素。然后每个执行的函数都会等待ajax调用完成。但他们都会同时运行。 – Wulf
@Wulf:回调函数不是异步调用的:https://github.com/jquery/jquery/blob/1.6.3/src/core.js#L609-L647 –
我已经使用了相同的格式,每个()函数中的ajax,它工作正常。你有没有在Firebug中检查过,只有一个POST请求正在进行,并且肯定有超过1个对象。你有多个提醒吗? – MattP