我在我的其他服务器上调用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'] + ' <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 :(得分: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