Предполагается, что аргумент api_response_format=jsonp:callback
- это имя функции обратного вызова, определенной вашим Javascript. Допустим, у меня есть функция с именем handleJson
, которая должна анализировать ответ JSON, а затем вам нужно передать аргумент jsonp:handleJson
. Затем Disqus передаст вам код, завернутый в вызов, на номер handleJson
.
Что дает JSONP, так это возможность обойти политику происхождения в одном домене. Предположим, что URL <<code>http://foo/json> отвечает этим объектом JSON:
{
id: 2,
first_name: 'John',
last_name: 'Doe',
}
Единственный способ использовать этот объект, если вы также находитесь в домене foo. Но если вы не можете находиться в этом домене, предположим, что вы получаете доступ к API, который возвращает объекты формата JSON, тогда вам нужна небольшая помощь от этого поставщика API.
Предположим, что запрашиваемый вами URL теперь становится <<code>http://foo/json?callback=handleJson>, а провайдер API отвечает следующим образом:
handleJson({id: 2, first_name: 'John', last_name: 'Doe'})
Теперь браузер попытается запустить этот фрагмент Javascript внутри среды, которую вы определили. Поэтому, если вы определили функцию handleJson
, она будет вызвана.
Вот что такое JSONP, способ обойти политику происхождения в одном домене и предоставить вам межсайтовый скриптинг с объектами JSON.