API调用返回错误导致json格式

时间:2016-05-03 19:34:26

标签: jquery ajax api

下面是调用API的javascript代码,我想从API中提供错误结果。

var loginData = {
    grant_type: 'password',
    username: usr,
    password: pwd
};
$.ajax({
    type: "POST",
    url: apiUrl,
    data: loginData,
    success: function (data) { ... },
    error: function (request, status, error) {
       display(error message return from API)
    } 
}).always(function () {
   // ...
});

API的响应是" 400 Bad request" ,内容如下

{
    "error": "invalid_grant",
    "error_description": "The user name or password is incorrect."
}

任何人都可以帮助我从API获取此响应并显示" error_description"对用户?

1 个答案:

答案 0 :(得分:2)

如果您只是想向用户显示错误消息(就像我想您的问题所要求的那样),那么将这样的内容添加到您的处理程序中:

function (xhr) {
  res = JSON.parse(xhr.responseText);
  $('#someDiv').html(res.error_description);
 },

当然,您需要确定要将此消息放在何处,并适当地重写HTML和选择器。或者你可以使用alert()来显示它 - 这完全取决于你。

修改

由于这是一个400响应,它将转到错误处理程序。在这种情况下,它返回一个xhr对象,你看到的JSON应该存储在xhr.responseText中。请参阅上面的编辑代码。