2017-07-11 5 views
0

Ich habe ein Problem mit meinem Projekt. Wenn ich Formular absende, reklamiere Ajax nur 1 im Entwicklerwerkzeug Mozilla aber plötzlich im Server Als ob die Anfrage zweimal angerufen würde (ich überprüfe mit addiere den Code). Manchmal passiert dieses Problem nicht, aber es passiert mehr. Ist es möglich, mit Stabilität Internetverbindung zu verbinden?AJAX-Anforderung Nur eine anzeigen, aber Controller zweimal aufgerufen

Hier ist mein Ajax.

$('#GIForm').submit(function(e) { 
     e.preventDefault(); 
    }).validate({ 
     submitHandler:function(form){ 
      if(countSave == 0){ 
       $.ajax({ 
        url:'/new', 
        method:'post', 
        async: false, 
        data: { 
         date : $('#GIDate').val(), 
         notes : $('#GINotes').val(), 
         mswarehouse_id : $('#GISourceWarehouse').val(), 
         mstransactiontype_id : $('#GIType').val(), 
         dest_msoutlet_id : $('#GIOutlet').val(), 
         msvendor_id : $('#GIVendor').val(), 
         detail : detail 
        }, 
        success: function(response){ 
         $('#pleaseWaitDialog').modal('hide'); 
         if(response.status=='success'){ 
          var message = 'Document ' + response.description.document + ' has been saved!'; 
          showAlert('',message,'success',function(e){ 
           window.location.replace(laroute.route('admin.goods_issue.index')); 
          }); 
         }else{ 
          showAlert('',response.description,'error'); 
          $('#addGIbtn').prop('disabled',false); 
          countSave = 0; 
         } 
        }, error:function(xhr,text, status){ 
         $('#pleaseWaitDialog').modal('hide'); 
         $('#addGIbtn').prop('disabled',false); 
         countSave = 0; 
         if(xhr.status==422){ 
          showAlert('',xhr.responseJSON.join('\n'),'error'); 
         } 
        } 
       }); 
       return false; 
      } 
     } 
    }); 

Hier ist Bild von Dev. Werkzeuge Mozilla. Ich verwische die Domain. Ich weiß nicht, warum die Farbstatusantwort nur grau ist, und die Antwort gibt bereits Statuserfolg zurück. Dieses Problem machen meine Datenbank zweimal einfügen. Dies ist ein Screenshot von meinem Mozilla. Response from Network Dev Tools Mozilla

Bitte helfen Sie, ich mehr keine Ahnung haben,

+0

@ZaheerUlHassan: Er erwähnt, dass sein Antwortstatus Erfolg ist, aber seltsamerweise hat seine Anfrage/Antwort keinen Statuscode, als würde sie immer noch warten – Sandy

Antwort

0

Es gibt eine submitHandler in das Plugin gebaut ist, die so etwas wie form.submit() enthält. Da Sie .submit() mit Formular sind, das nicht benötigt wird. So entfernen Sie $('#GIForm').submit(function(){}).

$('#GIForm').validate({ 
     submitHandler:function(form){ 
      if(countSave == 0){ 
       $.ajax({ 
        url:'/new', 
        method:'post', 
        async: false, 
        data: { 
         date : $('#GIDate').val(), 
         notes : $('#GINotes').val(), 
         mswarehouse_id : $('#GISourceWarehouse').val(), 
         mstransactiontype_id : $('#GIType').val(), 
         dest_msoutlet_id : $('#GIOutlet').val(), 
         msvendor_id : $('#GIVendor').val(), 
         detail : detail 
        }, 
        success: function(response){ 
         $('#pleaseWaitDialog').modal('hide'); 
         if(response.status=='success'){ 
          var message = 'Document ' + response.description.document + ' has been saved!'; 
          showAlert('',message,'success',function(e){ 
           window.location.replace(laroute.route('admin.goods_issue.index')); 
          }); 
         }else{ 
          showAlert('',response.description,'error'); 
          $('#addGIbtn').prop('disabled',false); 
          countSave = 0; 
         } 
        }, error:function(xhr,text, status){ 
         $('#pleaseWaitDialog').modal('hide'); 
         $('#addGIbtn').prop('disabled',false); 
         countSave = 0; 
         if(xhr.status==422){ 
          showAlert('',xhr.responseJSON.join('\n'),'error'); 
         } 
        } 
       }); 
       return false; 
      } 
     } 
    }); 

Hoffnung hilft es!

Verwandte Themen