2015-01-11 2 views
0

У меня есть следующий ответ от запроса AJAX (как в консоли Chrome):Как выбрать переменную из ответа AJAX

`XMLHttpRequest { 
statusText: "Not Found", 
status: 404, 
responseURL: "XXX", 
response: "{"apiVersion":"2.1","error":{"code":404,"message":…dException","internalReason":"User not found"}]}}", responseType: ""…`} 

Как я могу выбрать как значение statusText и internalReason?

Когда я пытаюсь установить var msg = response.data.statusText; я Uncaught TypeError: Cannot read property 'statusText' of undefined

Edit: Вот код в контексте:

$.ajax({ 
    type: "GET", 
    url: yt_url, 
    dataType:"json", 

    success: function(response) 
    { 
    // code 
    } 
    error: function(response) 
    { 
    handleError(response); 
    } 
}); 


function handleError(response) { 
    var msg = response.data.statusText; 
    $('#status').html('An error occurred:' + msg); 
} 
+0

вам тест кошки здесь ваш JSon если он действителен: http://jsonviewer.stack.hu/ – Riad

ответ

2

У вас есть данные в строке. Если вы хотите получить к нему доступ, как объект, тогда вам нужно преобразовать его в один.

Вам нужно найти или написать, анализатор для любого формата данных, данные в.

Похоже, это JSON, так что вы можете использовать JSON.parse(string)

+0

Спасибо, не так уже разобран, потому что я использую '$ .ajax' ? – alias51

+0

Возможно, он был проанализирован и сохранен где-то в другом месте, но «ответ» четко отображается в выводе, который вы цитируете как строку. Предположительно, jQuery не анализирует тела из 404 ответов. – Quentin

+0

Я обновил вопрос, чтобы объяснить контекст - это помогает? – alias51

0

Если ваш json является правильным объект, то вы должны получить доступ как:

var msg = response.statusText // not response.data.statusText as there is not key as data 
Смежные вопросы