JSONP, насколько я знаю, просто загружает скрипт из URL вместо создания XHR. Вместо того, чтобы возвращать json / xml / plain-text, URL вернет javasript. Возвращаемый javascript будет просто вызовом глобальной функции с переданными данными JSON. jQuery удобно создает эту глобальную функцию перед запросом JSONP и отправляет ее идентификатор как «обратный вызов» в запросе JSONP.
Проще говоря, вы должны получить доступ к $ _GET ['callback'] (необходимо использовать $ .get для междоменного домена), в котором содержится имя функции обратного вызова. Например:
<?php echo $_GET['callback']."(".json_encode($arrayJSONData).")"; ?>
Это вернет javascript, который вызывает глобальную функцию javascript с передачей данных json.
Помните, что это не XHR / Ajax, а скорее динамическое добавление нового элемента сценария DOM, вы не можете POST-данные, и, следовательно, нет $ _POST. Как бы вы отправляли данные POST при создании элемента сценария в HTML? Это данные GET, которые могут быть переданы только: <script src='someurl.php?this=getdatastuff'></script>
.
Я думаю, вот как это все работает. ХВ