Возврат JSON через вызов CURL - PullRequest
0 голосов
/ 14 февраля 2012

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

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;
    };
}

1 Ответ

0 голосов
/ 14 февраля 2012

Проверьте, не искажен ли ваш ответ 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...