809 Stimmen

jQuery Ajax-Fehlerbehandlung, Anzeige benutzerdefinierter Ausnahmemeldungen

Gibt es eine Möglichkeit, die ich benutzerdefinierte Ausnahmemeldungen als eine Warnung in meinem jQuery AJAX-Fehlermeldung anzeigen kann?

Wenn ich zum Beispiel eine Ausnahme auf der Serverseite auslösen möchte, und zwar über Streben por throw new ApplicationException("User name already exists"); Ich möchte diese Meldung ("Benutzername existiert bereits") in der jQuery AJAX-Fehlermeldung abfangen.

jQuery("#save").click(function () {
  if (jQuery('#form').jVal()) {
    jQuery.ajax({
      type: "POST",
      url: "saveuser.do",
      dataType: "html",
      data: "userId=" + encodeURIComponent(trim(document.forms[0].userId.value)),
      success: function (response) {
        jQuery("#usergrid").trigger("reloadGrid");
        clear();
        alert("Details saved successfully!!!");
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.status);
        alert(thrownError);
      }
    });
  }
});

Bei der zweiten Meldung im Fehler-Callback, bei der ich eine Meldung thrownError erhalte ich undefined y el xhr.status Code ist 500 .

Ich bin mir nicht sicher, was ich falsch mache. Was kann ich tun, um dieses Problem zu beheben?

0voto

Avinash Punkte 49

Zuerst müssen wir <serviceDebug includeExceptionDetailInFaults="True" /> in web.config einstellen:

<serviceBehaviors> 
 <behavior name=""> 
  <serviceMetadata httpGetEnabled="true" /> 
    **<serviceDebug includeExceptionDetailInFaults="true" />** 
 </behavior> 
</serviceBehaviors>

Zusätzlich zu, dass auf Jquery-Ebene in Fehler-Teil Sie brauchen, um Fehler-Antwort, die Ausnahme wie enthält parsen:

.error(function (response, q, t) { 
  var r = jQuery.parseJSON(response.responseText); 
}); 

Mit r.Message können Sie dann tatsächlich einen Ausnahmetext anzeigen.

Vollständigen Code prüfen: http://www.codegateway.com/2012/04/jquery-ajax-handle-exception-thrown-by.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X