Im Moment feuern meine Ajax-Beiträge alle ihre Error-Ereignisse, auch wenn die Aktion keinen Fehler verursacht hat. Ich habe eine Aktion ASP.NET MVC, die wie folgt aussieht:Was von der ASP.NET MVC-Aktion zurückgegeben werden muss, damit das jQuery-Ajax-Erfolgsereignis ausgelöst werden kann?
[AcceptVerbs(HttpVerbs.Post)]
public virtual ActionResult StuffToDo(int id)
{
// do various things that work ...
return new JsonResult(); // i have to return something, so this...
}
Auf der Client-Seite habe ich das jQuery:
$('#actionClick').click(function() {
if (confirm('Are you sure?')) {
$.ajax({
type: "POST",
url: "/Customer/StuffToDo/<%= Model.Customer.Id %>",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
success: function() {
ShowSuccessResult("Yay!");
},
error: function(xhr, ajaxOptions, thrownError) {
ShowErrorResult("Boo! Message:" + xhr.responseText);
}
});
}
return false;
});
Wenn die Aktion erfolgreich ist (keine Ausnahmen geworfen), dann würde ich erwarten, dass die Event Event Handler ausgelöst werden. Stattdessen wird das Fehlerereignis ausgelöst. Gibt es etwas, das ich zurückgeben oder ändern sollte, damit das Erfolgsereignis ausgelöst wird?
Ich weiß, diese Frage ist im Grunde das gleiche wie this other question, aber mein Fehlerhandler hat bereits die erweiterte Signatur, die die Frage der anderen Person gelöst.
bearbeiten pro Anfrage, hier ist die Antwort, die ich bin immer:
Link to the screen shot (nicht sicher, wie es in Frage zeigen)
bearbeiten änderte ich die Gibt den Wert an Null zurück, um zu sehen, ob dies Auswirkungen hat, aber keine Verhaltensänderung.
bearbeiten Es ist wie folgt zu aussehen beginnt, ist ein Problem mit HTTPS. Ich bekomme mehrere Antworten von der Anfrage. Die ersten 2 sind 401 Meldungen und dann bekomme ich eine 200
Was ist in der HTTP-Antwort? – Pointy
können Sie einen Screenshot der Firebug Anfrage Antwort von der Konsole – Cherian
und was ist der xhr.responseText? –