解决ajax核心执行php时返回成功和错误的解决方案

时间:2018-10-17 17:50:44

标签: javascript php ajax http

我有下面的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;
            });

请问您有解决方案吗?分享。谢谢

1 个答案:

答案 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并查看返回的状态,因此您可以推断出中断的时间点