2

JSONModel にロードする必要がある JSONP ベースの REST サービスがあります。

URL: http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=bbcModelLoaded (_callback パラメータは呼び出される JSONP 関数です)

これから JSONModel を作成する好ましい方法は何ですか?

AJAX 呼び出しを自分で処理することは避けたいと思います。

JSONP url を使用して JSONModel を作成すると、次のエラーが発生します。

次の問題が発生しました: parsererror - bbcModelLoaded({"count":52,...

4

3 に答える 3

4

$.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,output

重要なことは、コールバック パラメータの値を「?」に設定することです。jQuery がそれを検出し、JSONP リクエストとして処理するようにします。 http://api.jquery.com/jquery.getjson/#jsonp

于 2014-03-03T15:48:27.543 に答える
1

これまでに見つかった最も簡単な解決策は、JQuery の getJSON を使用することです

    $.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 に追加する必要があるのではないでしょうか?

于 2014-03-02T19:38:14.420 に答える