我有一个C#WebService(ASMX),代码如下:
if (!SomeValidation())
{
//context.Response.ContentType = "application/json";
//context.Response.ContentType = "text/plain";
context.Response.ContentType = "application/text";
context.Response.StatusCode = 400;
context.Response.Status = "400 Bad Request";
context.Response.StatusDescription = "Bad Request";
context.Response.Write("Error Message");
//context.Response.Write("{ ErrorMessage: "Error Message" }");
context.Response.End();
return;
}
使用AJAX调用此ASMX,其错误函数具有:
error: function (request, status, error) {
if (request.status === 400) {
ShowMessage("nWarning", request.responseText);
console.log(request);
} else {
ShowMessage("nFailure", "Error.");
console.error(request);
console.error(status);
console.error(error);
}
}
当我在我的机器上执行代码时,会显示正确的消息,但是当我发布项目时,它不起作用并显示状态代码消息。
为什么会这样?
OBS:评论的代码是我拥有和不工作的东西。
答案 0 :(得分:-1)
在您的方法的顶部,在写入回复之前,请致电Response.Clear
在底部,在致电Response.End
之前,请致电Response.Flush
。
修改强>
您实际上想要使用Response.Close
而不是结束。结束是关闭请求的一种苛刻方式,因为它中止了线程。
<强> EDIT2 强>
根据{{3}},您需要拨打documentation for HttpResponse#Close
。