Использование JSONP вместе с Dojo

К этому моменту вы уже обладаете достаточным объемом знаний о Dojo, чтобы не удивляться тому, что инструментальный набор упрощает работу, связанную с применением приемов JSONP. Для достижения того же эффекта, что был продемонстрирован в предыдущем примере, можно было бы использовать функцию dojo.io.script.get, которая принимает те же параметры, что и различные методы XHR. Единственное, что следует отметить: параметр handleAs в действительности не применим к JSONP, и обязательно следует передать параметр call-backParamName, чтобы инструментарий Dojo мог передавать имя функции обратного вызова для организации ее вызова от вашего имени. Ниже демонстрируется, как это можно реализовать на практике:
//ресурс dojo.io.script не является частью Base, поэтому не забывайте
//явно подключать его к странице
dojo.require("dojo.io.script");
dojo.io.script.get({
callbackParamName : "c", //определяется службой jsonp
url: "http://example.com?id=23",
load : function(response, ioArgs) {
console.log(response);
return response;
},
error : function(response, ioArgs) {
console.log(response);
return response;
}
});

Следует пояснить, что callbackParamName задает имя параметра строки запроса, который определяется компанией example.com.


Это не имя функции, которую вы определяете как функцию обратного вызова. Для этих целей Dojo создает временную функцию, с помощью которой передает полученные результаты в функцию load, следуя при этом соглашениям, принятым для функций XHR. Поэтому просто позвольте инструментарию Dojo самому разбираться с дополнением и обрабатывайте полученные результаты в функции load.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
DeferredList
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур