通过CURL调用返回JSON

时间:2012-02-13 22:27:42

标签: jquery json curl

我在我的其他服务器上调用PHP脚本来提取数据库信息并返回一个JSON数组。但是ajax调用不能调用跨域,所以我通过本地PHP脚本运行它,该脚本对远程PHP脚本进行CURL调用。该脚本将JSON数组返回到curl脚本(getURL.php)并返回回声。写入返回控制台的数据看起来是正确的,但它将每个字符都计为数组元素。所以我想也许它会以文字的形式回归。但添加$ .parseJSON(数据)会引发错误。删除它说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 :(得分: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