2015-06-03 4 views
1

Я пытаюсь получить данные с сервера без обновления страницы с помощью ajax, Таким образом, проблема данные брались как текст не нравится json данныеОшибка при получении данных в формате JSON, AJAX

мой код:

$.ajax({ 
    type: "GET", 
    url: "http://localhost:8080/search?key=" + QUERY + "", 
    success: function (reslt) { 
     console.log(reslt); 
     console.log(reslt.length); 
    } 
}); 

и данные на сервере:

им с помощью nodejs и выразить рамках код:

router.get('/search', function (req, res) { 
    tab = ['08:00', '09:00', '10:00', '11:00']; 
    res.end(JSON.stringify(tab)); 
}); 

почему, когда я сделать console.log(reslt[3]); это дать мне 8, должен дать мне 10:00

+1

Добавить 'DATATYPE:«json'' в '$ .ajax()' вызова. –

+0

Добавьте 'dataType: 'json'' к вашему [ajax-вызову] (http://api.jquery.com/jquery.ajax/) – Liam

+0

Используйте JSON.stringify на стороне сервера и используйте JSON.parse в обработчике успеха, чтобы получить доступ к индексам данных. – AkshayJ

ответ

3

Использование

dataType: 'json' 

Если ваш ответ JSON, всегда установить datatype в json. Сделайте это как этот

$.ajax({ 
    type: "GET", 
    dataType: 'json', 
    url: "http://localhost:8080/search?key=" + QUERY + "", 
    success: function (reslt) { 
     console.log(reslt); 
     console.log(reslt.length); 
    } 
}); 
0

Вы должны использовать dataType и contentType атрибут в вашем ajax запросе

$.ajax({ 
    type: "GET", 
    dataType: 'json', 
    contentType: "application/json", 
    url: "http://localhost:8080/search?key=" + QUERY + "", 
    success: function (reslt) { 
     console.log(reslt); 
     console.log(reslt.length); 
    } 
}); 
+0

'contentType', вероятно, не требуется. 'contentType' - это тип данных, которые вы отправляете **, а не ** **. – Liam