当我发送Ajax请求时,可以看到返回的状态码为200,这意味着一切正常。但是,它总是执行错误功能而不是成功功能。
网络Api
public HttpResponseMessage ChangeModus(Artikel Artikel)
{
return Request.CreateResponse(HttpStatusCode.OK);
}
JavaScript
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: "/Api/Artikel/ChangeModus",
data: JSON.stringify(Artikel),
success: OnSaveSuccess,
error: OnSaveError
});
function OnSaveSuccess(response) {
alert("Success")
}
function OnSaveError(response) {
alert("Ein Fehler ist aufgetreten");
}
我是在做错什么,还是为什么它总是执行Error函数?
答案 0 :(得分:4)
之所以发生错误,是因为尽管您有200(OK)响应,但该响应不包含响应正文。您应该发送带有响应的内容,或者改用HttpStatusCode.NoContent
(204)。
答案 1 :(得分:0)
就像雅各布所说,之所以会出现此问题,是因为必须有一个响应正文,否则javascript将执行错误功能。
选择以下选项之一:
public HttpResponseMessage ChangeModus(Artikel Artikel)
{
return Request.CreateResponse(HttpStatusCode.OK, "Success");
}
或者:
public HttpResponseMessage ChangeModus(Artikel Artikel)
{
return Request.CreateResponse(HttpStatusCode.NoContent);
}