请考虑以下代码。我正在使用以下ajax调用加载我的产品视图。
$.ajax({
cache: true,
type: "GET",
url: url,
data: json.stringify(data),
success: function (data) {
var mainview = $(data).find(".maindiv");
$('.maindiv').replaceWith(mainview);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert('Error Occured...... No Products Found');
},
complete: function () { subscribeProgress.hide(); }
});
现在,当我加载此视图时,每个产品都会添加到购物车按钮,在该按钮上执行另一个ajax调用以检查客户是否已注册或访客,并显示相应的注册弹出窗口。现在注册客户,调用另一个正常工作的ajax方法,但json数据不会返回成功,直接显示在页面上。
通过弹出窗口注册客户的id代码
$('#formpopupReg').unbind('submit');
$('#formpopupReg').bind('submit', function () {
if ($(this).valid()) {
$.ajax({
url: this.action,
type: this.method,
// you can post your model with this line
data: $(this).serialize(),
success: function (data) {//Json should get back to this call but doesnt
if (data.status == "Wrong email") {
$('#modelerrors').text("Wrong email");
}
if (data.status == "emailexists") {
//Code on Error
}
if (data.status == "registersuccess") {
location.reload();
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert('Internal Error.');
},
complete: function () { }
});
}
return false;
});
任何解决方案。我希望json数据返回成功通话。
答案 0 :(得分:0)
将dataType:"json"
添加到您的ajax电话。
答案 1 :(得分:0)
试试这个,问题是您的}
在代码中是额外的,如果您使用dataType: 'json',
则会丢失json
。
$.ajax({
cache: true,
url: url,
dataType: 'json',
data: json.stringify(data),
success: function (data) {
var mainview = $(data).find(".maindiv");
$('.maindiv').replaceWith(mainview);
}
error: function (xhr, ajaxOptions, thrownError) {
alert('Error Occured...... No Products Found');
},
complete: function () { subscribeProgress.hide(); }
});