Това е стара публикация, но все пак публикувам отговор:
Да приемем, че искате да получите jSON кода, генериран от следния файл, "get_json_code.php":
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>
Както споменахте, $.getJSON() използва JSONP, когато добавите "jsoncallback=?" параметър към низа на необходимия URL адрес. Например:
$.getJSON("http://mysite.com/get_json_code.php?jsoncallback=?", function(data){
alert(data);
});
В този случай обаче ще получите съобщение „невалиден етикет“ във Firebug, защото файлът „get_json_code.php“ не предоставя валидна референтна променлива за задържане на върнатия jSON низ. За да разрешите това, трябва да добавите следния код към файла "get_json_code.php":
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo $_GET['jsoncallback'].'('.json_encode($arr).')'; //assign resulting code to $_GET['jsoncallback].
?>
По този начин полученият JSON код ще бъде добавен към GET променливата 'jsoncallback'.
В заключение, "jsoncallback=?" параметър в $.getJSON() URL прави две неща: 1) настройва функцията да използва JSONP вместо JSON и 2) указва променливата, която ще съдържа JSON кода, извлечен от файла "get_json_code.php". Трябва само да се уверите, че имат ЕДНАКВОТО ИМЕ.
Надявам се това да помогне,
Vq.
person
vq20
schedule
04.10.2010