JSONP - полезный подход для выполнения кроссдоменных асинхронных запросов, позволяющий обойти изместно ограницение XMLHTTPRequest. Смысл его заключается в добавлении на страницу тега <script>, загружающего данные формата JSON со стороннего домена:
<script src="/some/crossdomain/url/here" type="text/javascript"></script>
Полученный код должен содержать нечто вроде:
var data = {one : "12", two : "34"} someCallback(data);
, где someCallback() - функция, которая должна обработать полученный JSON.
Чтобы получатель запроса знал, какую именно функцию написать вместо someCallback, имя функции должно передаваться в тексте запроса, например: URL_запроса?callback=myCallBack.
Но это всё теория, и если пользоваться jQuery, всё оказывается намного проще:
$.getJSON(crossdomainRequestUrl, function(data) { ... })
, где crossdomainRequestUrl должен заканчиваться на "&callback=?". Конечный знак вопроса укажет jQuery, что выполняется JSONP зарпос. При этом имя callback-функции указывать не нужно. Полученный JSON будет передан, как обычно, в обработчик, заданный вторым параметром $.getJSON. На серверной части значение параметра callback, которое будет сформировано jQuery самостоятельно, нужно исопльзовать как имя callback функции, вызов которой нужно вставить в выдаваемый в ответ JS-скрипт.
Комментариев нет:
Отправить комментарий