2012-02-13 98 views
0

我在其他服務器上調用一個PHP腳本來提取數據庫信息,並返回一個JSON數組。但ajax調用不能調用跨域,所以我通過一個本地PHP腳本運行它,該腳本對遠程PHP腳本進行CURL調用。該腳本將一個JSON數組返回給curl腳本(getURL.php)並返回迴響。編寫返回到控制檯的數據看起來是正確的,但它將每個字符計數爲一個數組元素。所以我想也許它是作爲文本回來的。但是添加$ .parseJSON(數據)會引發錯誤。刪除它說arr長度是170.任何想法?通過CURL調用返回JSON

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或未定義,則將從parseJSON返回'null' 。在瀏覽器提供JSON.parse的本地實現的情況下,jQuery使用它來解析字符串。有關JSON格式的詳細信息,請參見http://json.org/

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

如果在遠程服務器控制,我建議使用JSONP。 http://en.wikipedia.org/wiki/JSONP