jQuery 1.11.3 Post empfängt ungültige Anforderung von HttpResponseMessage, geht jedoch nicht in fehl. Nachricht vom Server ist die folgende Zeichenfolge:jQuery 1.11.3 Post empfängt ungültige Anforderung, geht aber nicht in Fehler
"Statuscode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Inhalt: , Header: {}"
Sollte ich nicht bekommen Objekt zurück von HttpResponseMessage, die Bad Request sagt? Ich verwende IIS Express.
Zurück Ende:
[HttpPost]
public HttpResponseMessage DeleteOrderRow(int orderRowId)
{
var row = OrderRowData.LoadItem(orderRowId);
if (row == null)
{
AddAlert(AlertStyles.Danger, "Order row does not exist");
//Below is the example being returned
return new HttpResponseMessage(HttpStatusCode.BadRequest);
}
OrderRowData.Delete(orderRowId);
AddAlert(AlertStyles.Success, "Order row has been removed");
return new HttpResponseMessage(HttpStatusCode.OK);
}
jQuery:
$(document).on('click', '.delete-order-row', function (event) {
event.preventDefault();
var element = $(this);
var id = element.data('id');
if (id == null || id === -1) {
element.closest('tr').remove();
} else {
var url = element.attr('href');
$.post(url, { orderRowId: id })
.done(function (data) {
element.closest('tr').remove();
})
.fail(function (xhr, status, error) {
location.reload();
});
}
});
Update: Checked Netzwerkverbindung nach Spitze von @smoksnes. Der Server sendet tatsächlich 200 OK, obwohl return new HttpResponseMessage(HttpStatusCode.BadRequest);
vom Back-End gesendet wird. Ist das normales Verhalten von IIS Express?
Update 2: es Client-Seite mit diesem Code wird gelöst. Basierend auf @smoksnes Antwort und dass IExceptionFilter
und ExceptionFilterAttribute
ist nicht in meinem Projekt Ich vermute, Umbraco. Hat jemand anderes dies in Umbraco erlebt?
.done(function (data) {
if (data.indexOf("StatusCode: 400") !== -1) {
$(window).scrollTop(0);
location.reload();
} else {
element.closest('tr').remove();
}
})
Überprüfen Sie, dass der Server tatsächlich 400 als den Statuscode in der Registerkarte Netzwerk zurückgibt. Ich habe einige Implementierungen gesehen, die eine 200 zurückgeben, aber mit einem JSON, der einen anderen Statuscode enthält. – smoksnes
Ich habe nicht darüber nachgedacht und Sie sind, der Server gab 200 OK zurück. Weißt du, ob dies normales Verhalten von IIS Express ist? 'neue HttpResponseMessage (HttpStatusCode.BadRequest);' sollte eindeutig 400 imao sein. – Ogglas