SAPUI5 JSONModel и JSONP



У меня есть служба REST на основе JSONP, которую мне нужно загрузить в JSONModel.



URL: http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=bbcModelLoaded
(Параметр _callback - это вызываемая функция JSONP)



Каков предпочтительный способ создания JSONModel из этого?



Я бы предпочел не обрабатывать вызов AJAX самостоятельно.



Ошибка при создании JSONModel с url-адресом JSONP:




Возникла следующая проблема: parsererror-bbcModelLoaded ({"count": 52,...


358   3  

3 ответов:

Нет необходимости в $.getJSON, модель JSONP или любое другое принятие кода.

Это действительно работает из коробки:

new sap.ui.model.json.JSONModel("http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=?");

Живой пример здесь: http://jsbin.com/babiqoze/1/edit?html, вывод

Важно то, что вы устанавливаете значение параметра обратного вызова в "?- так что jQuery обнаружит его и обработает как запрос JSONP. http://api.jquery.com/jquery.getjson/#jsonp

Самым простым решением, найденным до сих пор, является использование getJSON JQuery

    $.getJSON("http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=?", function(results) {
        oModel= new sap.ui.model.json.JSONModel(results);
    }

Может быть, нам следует добавить JSONPModel, который просто делает это в #sapui5/openui5 ?

Было бы неплохо иметь модель JSONP в sapui5. Я также не уверен, как обрабатывать тайм-ауты, обратные вызовы и ошибки? Также генерация параметров могла бы быть более динамичной.

Что-то вроде:

var mParameters = {
"Key1" : "Value1",
"Key2" : "Value2",
...
}
var oModel = new JsonpModel(sURL, mParameters, fCallback, fTimeout);

Comments

    Ничего не найдено.