1

Sencha Touch アプリをパッケージ化して、複数のモバイル プラットフォーム (iOS/Android) にデプロイしたいと考えています。ブラウザでクロスドメイン AJAX リクエストができないことは知っていますが、Sencha Touch アプリでクロスドメイン AJAX 呼び出しを行うことは可能ですか? (サーバーなし、PhoneGap などを使用して iOS/Android にパッケージ化)

Sencha Touch アプリ内で AJAX を使用してサードパーティ API をヒットしたいのですが、クロスドメインの問題を回避するためにサードパーティ API をラップするサーバーが必要であるという印象を受けました。誰か明確にしてください。

4

3 に答える 3

1

クロスドメイン AJAX リクエストはJSONPExt.data.proxy.JsonP.
API がどのように見えるかはわかりませんが、次のように使用します。

var store = Ext.create('Ext.data.Store', {
    autoLoad: true,
    //model: , //Your API
    proxy: {
        type: 'jsonp',
        url : 'http://domain.com/request',
        callbackKey: 'theCallbackFunction'
    }
});
于 2013-01-17T22:12:26.637 に答える
0

A1rPunが言うように、クロスドメインAJAXリクエストは、Ext.data.proxy.JsonPを使用してJSONP(パディング付きのJSON)で可能です

Sencha touch-2 アプローチ:

Ext.define('YourStore', {
       extend: 'Ext.data.Store',

       config: {
           fields: ['field1', 'field2', 'field3'],

           proxy: {
               type: 'jsonp',
               url:'YourUrl',
               callbackKey: 'jsoncallback',
               extraParams : {
                    method : 'YourUrl.method',
                    api_key : 'PUTYOURKEYHERE',
                    format : 'json',
                    nojsoncallback : 1
               },
               reader: {
                   type: 'json'
               }
           }
       }
   });
于 2013-01-18T09:42:59.797 に答える
0

JSONP を使用できますが、通常の JSON も使用できます。

ファイルが「ローカル」、つまり phonegap でラップされている場合、電話ブラウザーはクロスドメイン要求を許可します。

于 2013-01-17T23:23:05.307 に答える