Javascript JQuery错误的ajax已完成回调被激发
我在ajax回调中遇到了一个奇怪的情况 calla工作正常(我可以在正确的位置看到服务器调用),并且正确地触发了done回调 Call B Call工作正常(我可以在正确的位置看到服务器调用),但随后A's done Call被触发 代码如下: A: 代码B:Javascript JQuery错误的ajax已完成回调被激发,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,我在ajax回调中遇到了一个奇怪的情况 calla工作正常(我可以在正确的位置看到服务器调用),并且正确地触发了done回调 Call B Call工作正常(我可以在正确的位置看到服务器调用),但随后A's done Call被触发 代码如下: A: 代码B: $(document).ready(function () { $('#twitter_sign_up').submit(function() { var valuesToSubmit = $(this).seri
$(document).ready(function () {
$('#twitter_sign_up').submit(function() {
var valuesToSubmit = $(this).serialize();
$.ajax({
url: $(this).attr('action'), //submits it to the given url of the form
data: valuesToSubmit,
dataType: "JSON", // you want a difference between normal and ajax-calls, and json is standard
type: 'POST'
}).done(function(json) {
console.log("in success for modal B...");
}).fail(function () {
console.log("--------> modal B callback error");
});
return false; // prevents normal behaviour
});
});
这里发生了什么事?哦,天哪。。。我刚想出来 所以我有:
<div id="twitter_sign_up">
<form id="beta_signup_form" ...>
...
</form>
</div>
...
复制html是我的错 我从未见过这种情况发生。你能在这里粘贴HTML代码吗?你确定你给我们看的代码会发生这种情况吗?因为它看起来很好。更重要的是,由于它们位于单独的
$(文档).ready
处理程序中,因此它们不可能相互看到。您应该使用var valuesToSubmit=$(this).serialize(),$this=$(this)在submit
回调中的code>,然后在$中引用$this
。ajax
调用而不是$(this)
。这就是使用jQuery创建ajax的方法,我们可以看到您下次在做什么非常好,哈哈。很高兴你能找到答案。这就排除了我的问题,“呼叫B呼叫工作正常(我可以在正确的位置看到服务器呼叫)”我猜他们都在呼叫同一个位置?或者你没有检查它发布到的位置
<div id="twitter_sign_up">
<form id="beta_signup_form" ...>
...
</form>
</div>