2014-11-03 6 views
0

Я получаю этот ответ от моего сервера с помощью Ajax вызоваJSON разбора не работает

var data = 
[{ 
    "Response": { 
     "ResponseStatus": { 
      "Code": "1", 
      "Description": "Success" 
     }, 
     "TransactionReference": {} 
    } 
}, { 
    "Response": { 
     "ResponseStatus": { 
      "Code": "1", 
      "Description": "Success" 
     }, 
     "TransactionReference": {} 
    } 
}]; 

Ajax вызова:

$.ajax({ 
       "type":"POST", 
       "url":"'.CHtml::normalizeUrl(array("packaging/calltag")).'", 
       "data":$("#returnrequestcreationform").serialize(), 
       "success":function(data){ 
        $.each(data, function (key, val) { 
         console.log(key + val); 
        }); 
       }, 
}); 

Но в журнале, это дает мне это

0[ 
1{ 
2" 
3R 
4e 
5s 
6p 
7o 
8n 

Я пробовал JSON.parse() и jQuery.parseJSON(), которые при попытке прочитать этот объект дают мне «неожиданный конец ввода». Похоже, что правильный json вернулся ко мне? Любая идея, почему это происходит через него, как будто это строка?

+1

Я не могу не заметить, недостающее точкой с запятой. ('var data = ...') – 0112

+0

Я не использую этот код, он просто показывает, какие данные установлены. Я использую шаг через отладчик в chrome, и то, что получает переменная данных, становится тем, что находится внутри [] в функции успеха. – Angelo

+0

Это было больше для людей, вставляющих ваш код в консоль для его проверки. – 0112

ответ

1

Вы должны указать функцию, что тип данных

$.ajax({ 
      "type":"POST", 
      "url":"'.CHtml::normalizeUrl(array("packaging/calltag")).'", 
      "data":$("#returnrequestcreationform").serialize(), 
      "dataType": "json", 
      "success":function(data){ 
       $.each(data, function (key, val) { 
        console.log(key + val); 
       }); 
      }, 
}); 
+0

Это работает. Я думал, что уже пробовал, и проблема закончилась тем, что в моем ответе был добавлен дополнительный текст, потому что было показано представление вместе с эхом JSON_ENCODE ($ res); – Angelo

Смежные вопросы