如何在$ http / Restangular中检测IHttpActionResult状态代码?

时间:2016-02-04 22:00:01

标签: javascript angularjs asp.net-web-api2 restangular

我有一个典型的Web API 2 POST方法返回IHttpActionResult

public IHttpActionResult PostSomething(string someStringParam)

如果符合某些条件,我会回复:

return BadRequest("you are request sux l0l!!1!"); 

这会被$httpRestangular来电的错误部分选中:

            .error(function(err) {
                //pop failure notification or something
            });

编辑:按"错误",我的意思是

中的第二个功能
makeSomeDatabaseCall.then(function(resp){}, function(err){})

如何检查响应类型是否为"错误请求" (或" Conflct"或其他)并且消息正是(或任何字符串常量):

  

"你是请求sux l0l !! 1!"

2 个答案:

答案 0 :(得分:1)

嗨,你可以像这样挖掘结果:

private IHttpActionResult GetErrorResult(IdentityResult result)
        {
            if (result == null)
            {
                return InternalServerError();
            }

            if (!result.Succeeded)
            {
                if (result.Errors != null)
                {
                    foreach (string error in result.Errors)
                    {
                        ModelState.AddModelError("", error);
                    }
                }

                if (ModelState.IsValid)
                {
                    // No ModelState errors are available to send, so just return an empty BadRequest.
                    return BadRequest();
                }

                return BadRequest(ModelState);
            }

            return null;
        }

顺便说一下,这个代码片段用于asp身份识别功能

答案 1 :(得分:0)

XMLHttpRequest对象是错误函数中的第一个参数。

   .error(function(xhr, status) {
                     alert(xhr.status);
                });