2012-02-13 3 views
0

Я вызываю скрипт PHP на моем другом сервере, чтобы извлекать информацию о базе данных, и возвращает массив JSON. Но ajax вызывает cant call cross domain, поэтому я запускаю его через локальный PHP-скрипт, который вызывает вызов CURL для удаленного PHP-скрипта. Этот скрипт возвращает массив JSON в curl-скрипт (getURL.php) и возвращает echos. запись данных, возвращаемых в консоль, выглядит корректно, но она подсчитывает КАЖДЫЙ символ как элемент массива. Поэтому я подумал, что, возможно, это возвращается как текст. Но добавление $ .parseJSON (данных) вызывает ошибку. Удаление его говорит, что длина arr равна 170. Любые идеи?Возвращение JSON через вызов CURL

function getPrograms() { 

    var data = "url=http://www.wdctravel.com/co-op/getPrograms.php"; 
    $.ajax ({ 
     url: "getURL.php", 
     data: data, 
     success: function(data) { 
      var arr = $.parseJSON(data); 
      postPrograms(arr); 
     } 
    }); 
}  

function postPrograms(arr) { 
    var len=arr.length; 
    alert (len); 
    for(var i = 0; i < len; i++) { 
     if (i % 2 == 0) { 
      $('#programs tr:last').append("<tr></tr>"); 
     } 
     $('#programs tr:last').append('<td><input type="text" size="3" name="CoOpID~' + arr[i]['id'] + '" /></td><td>' + arr[i]['name'] + '&nbsp;<span style="color: red;"><span id="cs' + arr[i]['id'] + '">' + arr[i]['remain'] + '</span> spots left.</span></td>'); 
     var c = $("#programs tr:last td").length; 
    }; 
} 

ответ

0

Проверьте, не вызван ли ваш ответ JSON.

Передача в неправильной строке JSON может привести к тому, что исключение составляет . Например, все неправильные строки JSON:

{test: 1} (тест не содержит двойных кавычек). {'test': 1} ('test' использует одинарные кавычки вместо двойных кавычек). Дополнительно , если вы ничего не передадите, пустая строка, null или undefined, «null» будет возвращена из parseJSON. Если браузер предоставляет встроенную реализацию JSON.parse, jQuery использует ее для синтаксического анализа строки. Для подробная информация о формате JSON, см. http://json.org/.

http://api.jquery.com/jQuery.parseJSON/

Если у вас есть контроль над удаленным сервером, я предлагаю использовать JSONP. http://en.wikipedia.org/wiki/JSONP

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