Javascript jqueryajax发送两个请求
jQueryAjax似乎正在发送两个请求。由于我使用的是基于时间的双因素身份验证方法,第二个请求失败,因此原始请求“失败” 第一个是post请求,这很好,但是还有GET请求,这不好 下面是我用来生成查询的javascriptJavascript jqueryajax发送两个请求,javascript,jquery,ajax,Javascript,Jquery,Ajax,jQueryAjax似乎正在发送两个请求。由于我使用的是基于时间的双因素身份验证方法,第二个请求失败,因此原始请求“失败” 第一个是post请求,这很好,但是还有GET请求,这不好 下面是我用来生成查询的javascript $('#form').live('submit', function(event) { var target = $('#ajax'); var url = '/ajax/user/authenticateLevel3'; $.ajax({
$('#form').live('submit', function(event) {
var target = $('#ajax');
var url = '/ajax/user/authenticateLevel3';
$.ajax({
type: "POST",
url: url,
data: $('#form').serialize(),
dataType: 'json',
success: function(data, status) {
$.getJSON(url, function(data) {
if (!data.resultCode) {
$('#ajax').html($.base64.decode(data.html));
$('#ajax').modal();
} else {
location.reload();
}
});
}
});
event.preventDefault();
});
你知道我如何解决这个问题吗?这是因为你在做两个ajax调用(
.ajax
和.getJSON
)
尝试执行此操作(使用文档事件委派而不是.live
):
是一种用于从服务器检索JSON的AJAX方法,而不是用于处理另一种AJAX方法返回的数据。把它拿走
$('#form').live('submit', function(event) {
var target = $('#ajax');
var url = '/ajax/user/authenticateLevel3';
$.ajax({
type: "POST",
url: url,
data: $('#form').serialize(),
dataType: 'json',
success: function(data, status) {
if (!data.resultCode) {
$('#ajax').html($.base64.decode(data.html));
$('#ajax').modal();
} else {
location.reload();
}
}
});
event.preventDefault();
});
由于您提到要切换到,语法如下:
$(parent).on('submit', '#form', function(event) {
/*
* ...
*/
});
其中,
parent
是#表单
中最近的静态父元素,您将发送2个请求。一个带有.ajax,另一个带有.getJson
删除.getJson请求。由于没有向.ajax传递数据类型属性,jquery将尝试猜测响应类型。您还可以将数据类型指定为json以强制转换。对于这两个选项,成功回调的“data”参数应转换为javascript对象。您确实看到您实际上发出了两个请求,对吗<代码>$。ajax是其中之一,
$。getJSON
是第二个。值得注意的是,该方法已经被弃用了很长一段时间。不要用它。@shmiddy,呃,嘿,是吗?我应该怎么做@nbrooks,我正在将内容移动到.on()
。您应该能够打开$.getJSON
回调的内容,它可能会工作。IE删除$.getJSON(…
和关闭})代码>用于该块。投票关闭,因为太本地化。
$(parent).on('submit', '#form', function(event) {
/*
* ...
*/
});