2016-07-16 52 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,因爲如果它返回錯誤,它不是一個成功的操作。請注意我回復中的第一句話「通常,您不想處理成功回調中的錯誤」 –

相關問題