我有下面的ajax代码,它工作正常。如果我是第一次发送请求,则可以正常运行。如果我第二次发送,它将返回成功和错误(每个1)。
$('#eproductForm').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: $('#eproductForm').attr('action'),
data: $('#eproductForm').serialize(),
cache: false,
async: false,
dataType: 'json',
success: function (response) {
$('#eproductModal').modal('hide');
$('#eproductForm')[0].reset();
save_success();
stockList();
},
error: function(response){
something_wrong();
}
});
return false;
});
请问您有解决方案吗?分享。谢谢
答案 0 :(得分:0)
为什么最后返回false !?我希望
save_success();
stockList();
这两个函数会将您带到另一个地方,问题是当您返回false时,也许commit aint可以正常工作,所以它会归因于错误。尝试成功返回true /错误返回false,也许可以解决这个问题。如果这不起作用,请尝试使Ajax请求Promise,如
return new Promise ((resolve, reject) => {
$.ajax({
type: 'post',
url: $('#eproductForm').attr('action'),
data: $('#eproductForm').serialize(),
cache: false,
async: false,
dataType: 'json',
success: function (response) {
resolve(response)
},
error: function(response){
reject(err)
}
});
}).then((response) => {
$('#eproductModal').modal('hide');
$('#eproductForm')[0].reset();
save_success();
stockList();}).catch((err) => {something_wrong();})
这将帮助您了解请求如何通过函数传递。另外,它有助于在chrome开发人员工具中检查您的rquest并查看返回的状态,因此您可以推断出中断的时间点