如何在Ajax错误回调中为errorThrown参数设置自定义消息?

时间:2019-06-11 18:55:06

标签: c# jquery ajax .net-core http-status-codes

我的dotnet核心应用程序中有一个动作过滤器,并希望在ajax调用返回错误结果时为用户生成正确的消息。

在客户端向用户显示 errorThrown 参数时,我不想更改客户端脚本。

当ajax调用发生异常(状态码为500)时,用户仅收到“内部服务器错误”消息,我将显示更多详细信息。

我尝试使用return StatusCode(500, Json("Custom error"))return StatusCode(500, "Custom error"),但不会影响向用户显示的结果。

error: function (jqXHR, textStatus, errorThrown) {
    $('#failed-info').text(errorThrown);
}

对我来说最好的解决方案是我可以提供一个自定义的statusCode和statusText结果,例如statusCode = 700,StatusText =“出于安全原因,不允许使用。”

1 个答案:

答案 0 :(得分:0)

WEB API服务器端自定义消息示例

    public class MyAPIController : ApiController
    {
        [HttpPost]
        [Route("~/api/mypath/")]
        public IHttpActionResult returnError([FromBody]StringModel value)
        {

           return Content(HttpStatusCode.Forbidden,"bla bla bla");

        }
    }

在示例中,它返回状态Forbidden (403),但您可以更改为所需的状态。

但是根据状态的浏览器可能会覆盖该错误。