Получение программного кода JavaScript с помощью вызова JSONP

Как оказывается, функцию dojo.io.script.get можно использовать для взаимодействия с сервером, который возвращает чистый программ ный код JavaScript. В этом случае запрос выглядит точно так же, только вместо параметра callbackParamName следует определить значение параметра checkString. Значение параметра checkString представляет собой механизм, позволяющий проверить получение ответа. Если применение оператора typeof к имени, переданному в параметре checkString, не возвращает значение undefined, то можно предположить, что сценарий JavaScript был полностью загружен. (Другими словами, это грубый прием.) Предположим, что у нас имеется приведенный далее простой сценарий, использующий модуль CherryPy. Для проверки успешной загрузки сценария вы могли бы использовать значение o в параметре checkString, так как o – это переменная, которая, как предполагается, будет установлена в результате вызова JSONP (когда будет выполнено условие typeof(o) != undefined, можно будет предположить, что вызов завершился благополучно).

Сначала приведем сценарий CherryPy, возвращающий программный код JavaScript:
import cherrypy
class Content:
@cherrypy.expose
def index(self):
return "var o = {a : 1, b:2}"
cherrypy.quickstart(Content())

Предположим, что CherryPy прослушивает порт 8080, тогда соответствующая реализация получения программного кода JavaScript с использованием возможностей Dojo может выглядеть так:
dojo.require("dojo.io.script");
dojo.io.script.get({
checkString : "o",
timeout : 2000,
url : "http://localhost:8080",
load : function(response, ioArgs) {
console.log(o);
console.log(response)
},
error : function(response, ioArgs) {
console.log("error", response, ioArgs);
return response;
}
});.



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

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