Ich habe diesen jquery-Post-Aufruf, der irgendwie die Fehlerfunktion aufruft, obwohl er die Daten in die Datenbank vollkommen in Ordnung bringt.
%Vor%- Controller
%Vor%---- UPDATE ---
Google Chrome meldet den folgenden Fehler:
POST localhost / Mail / ExternalMail / Create 403 (Verboten)
jquery.min.js: 4 sende jquery.min.js: 4 f.xtend.ajax
jquery.min.js: 4 (anonyme Funktion) Create: 59 f.event.dispatch
jquery.min.js: 3 h.handle.i
- Seitenquelle
%Vor%- Ajax Request Respone
%Vor% Ich denke, das Problem besteht darin, JsonRequestBehavior.AllowGet
und dann auf die Methode posten:
%Vor%Wenn die Datenbank gefüllt wird, wissen wir, dass der Repository-Code ausgelöst wird. Der Browser meldet ein HTTP403, das riecht wie das Framework eine Sicherheitsausnahme auslöst, was es tun kann, wenn es erwartet, dass es auf GET reagiert und einen POST erhält.
Versuchen Sie, Ihre Methode in Ihrem Controller von einem JsonResult zu einem ActionResult
zu ändern %Vor%Die Ajax-Anforderung wird den Fehlerblock eingeben, wenn Sie angeben, dass der Datentyp json ist, aber die Antwort nicht als json analysiert werden kann.
Öffnen Sie chrome und platzieren Sie einen Unterbrechungspunkt im Fehlerblock und schauen Sie sich den Wert der Daten an. Setze den Inhalt in einen json-Validator und überprüfe, ob deine Antwort gültig ist. json.
ändert auch die Methode sigs Ihrer Erfolgs- und Fehlerfunktionen zu
%Vor%Wenn Sie dann Haltepunkte in diesen Funktionen platzieren, können Sie die Parameter überprüfen und sehen, was sich deutlich abzeichnet.
- Aktualisierung Da Sie einen 403-Fehlercode erhalten, lesen Sie diese Antwort zu stackoverflow und überprüfen Sie die Berechtigungen für den Ordner, auf den Sie verweisen
403 verboten nach der Veröffentlichung von asp.net MVC
>sehen Sie sich das auch an, da Sie IIS 5.1 wie folgt ausführen ... es könnte ähnlich sein
Wie gesagt, müssen Sie überprüfen, was in den zurückgegebenen textStatus- und errorThrown-generierten Variablen enthalten ist, weil Sie etwas anderes als einen 200 HTTP-Code zurückgeben können und Ihr Code immer noch gut ausgeführt wird (dies ist der Fall, seit Sie Ihre Datensätze melden) der Datenbank hinzugefügt werden). Ein 200 HTTP-Code löst die "Erfolg" -Funktion aus, und ich kann mich momentan nicht erinnern, aber etwas im 4xx oder 5xx sollte die "Fehler" -Funktion auslösen.
Die wichtigste Sache, die hier berücksichtigt werden muss, ist, dass es der HTTP-Rückkehrcode des Webservers ist, der steuert, welche Funktion im jquery ajax-Aufruf ausgelöst wird
Ändern Sie Ihren Code in:
%Vor%und sagen Sie uns, was Sie in den Variablen textStatus und errorThrown haben.
Tags und Links asp.net-mvc jquery json