2017-07-20 5 views
0

Ich arbeite an einer HTML-App, in der es ein Formular gibt. Wenn ich auf die Schaltfläche "Senden" klicke, mache ich einen serverseitigen Anruf unter Verwendung von jquery.ajax(). Wenn jedoch eine Ausnahme vom Server zurückgegeben wird, z. B. Status Code 500, muss auf derselben Seite eine Fehlermeldung angezeigt werden. Es wird jedoch automatisch umgeleitet, wenn ein Fehler auftritt. Ich versuchte, die statusCode Einstellung in jQuery.ajax mit() wie folgt aus:Formular Redirect Jquery Ajax

$.ajax(
{ 
    method: 'GET', 
    url: 'my url', 
    //... 
    successCode: { 
     500: function(response) { 
      alert(response.getResponseHeader("xyz")); 
      $('some_selector').show(); 
     } 
    }, 
    success: function(){}, 
    error: function(){} 
    //... 
}) 

Aber das scheint nicht zu funktionieren. Es leitet mich zum Aktionslink um und zeigt den JSON-Fehler an, und ich kann mir keine Möglichkeit vorstellen, diese Umleitung zu verhindern. Jede Hilfe wäre willkommen.

Dank

Antwort

0

Es ist wie Ihre Ajax-Optionen scheint außerhalb der Ajax-Aufruf nach innen setzen Ihre Parameter wie
$.ajax(){options} =>$.ajax({options})

die Sie interessieren,

$.ajax({url: 'your url', 
     type: 'GET', 
     success: function (response) { 
      //succesfull request 

     } 
    }).fail(function (response) { 
     //failed request 
    }); 

sollten Sie in der Lage sein, Um den Statuscode im Fehler zu finden, verwenden Sie response.status

Ich denke, dass deine Submit-Taste die Weiterleitung auslöst. Versuchen

$("#myform").submit(function(event){ 
     event.preventDefault(); 
}); 

Hinzufügen der Umleitung

+0

leid es im Aufruf war zu verhindern, habe ich es der falsche Weg hier. event.preventDefault funktioniert nicht auch, der Code tritt nicht die Erfolgsfunktion für serverseitige Fehler –

+0

Nein tritt es die Fehlerfunktion, da die Anforderung mit einem Server-Side-Fehler fehlschlug. – Mike