2016-07-16 46 views
0

我试图选择从我的AJAX请求返回的JSON的Error属性。这是JSON:从JSON中选择一个项目

{ 
    "Error": "Login", 
    "Message": "Er zijn onjuiste inloggegevens ingevoerd! Probeer het opnieuw!" 
} 

我试着在jQuery的以下内容:

$.ajax({ 
    url: '/cp/login.php', 
    data: { 
     u: $u, 
     p: $p, 
     t: $t, 
     r: $r, 
     s: $s 
    }, 
    type: 'post', 
    dateType: 'json', 
    success: function(data) { 
     alert(data.Error); 
    } 
}); 

导致undefined

+0

您确定数据已填充? –

+0

是的,数据结果在上面的JSON – Chris

+3

使用'console.log(data);'看看接收到了什么 – Ahmad

回答

0

通常,您不想处理成功回调中的错误。还存在的jQuery 3

的jqXHR.success(),jqXHR.error()已取消通知,和jqXHR.complete()回调是 作为jQuery的3.0的除去。您可以使用jqXHR.done(),jqXHR.fail()和 jqXHR.always()来代替。

这意味着你应该处理这样

$.ajax({ 
    url: '/cp/login.php', 
    data: { 
     u: $u, 
     p: $p, 
     t: $t, 
     r: $r, 
     s: $s 
    }, 
    type: 'post', 
    dateType: 'json' 
    }) 
    .done(function(data) { 
    // success 
    }) 
    .fail(function(data) { 
    // error 
    console.log(data.Error); 
    }) 
    .always(function() { 
    // complete 
    }); 

您的AJAX调用如果这不起作用的API被严重构成,任何API应实施适当的响应代码。

+0

你想回答这个问题吗? – Ahmad

+0

@Ahmad是的,成功不应该能够获取data.Error,因为如果它返回错误,它不是一个成功的操作。请注意我回复中的第一句话“通常,您不想处理成功回调中的错误” –

相关问题