4

ExtJS 4.1 を使用してグリッド パネルを作成しようとしています。AJAX プロキシを使用してサーバーからデータを取得します。

var store = Ext.create('Ext.data.Store', {
    model: 'myModel',
    pageSize: pageSize,
    proxy: {
        type: 'ajax',
        url: "../search",
        actionMethods:  {
            create: "POST",
            read: "POST",
            update: "POST",
            destroy: "POST"
        },
        headers: {
            'Content-Type': 'application/json'
        },
        limitParam: false,
        startParam: false,
        pageParam: false,
        extraParams: JSON.stringify({
            rows: pageSize,
            role: "Admin",
            index: myIndex,
            question: searchPhrase
        }),
        reader: {
            type: 'json',
            root: 'results.results',
            totalProperty: 'numFound',
            model: 'myModel'
        }
    }
});

store.loadPage(1);

しかし、うまくいかないようです。

JSON を読み取れないというエラー メッセージが表示されます。さらに、Firebug では、送信されたパラメーターは人間が判読できません。

同じパラメーターを使用して Ajax 呼び出しを実行しようとすると、すべて問題ないように見えます。

Ext.Ajax.request({
    url:"../search",
    method: "POST",
    params: JSON.stringify({
        rows: pageSize,
        role: "Admin",
        index: myIndex,
        question: searchPhrase
    }),
    success: function(){
        console.log("ok");
    },
    failure: function(response, opts){
        console.log("failed");
    },
    headers: {
        'Content-Type': 'application/json'
    }
});

Firebug でさえ、リクエストのすべてのパラメータは問題ないように見えます。

プロキシを使用する場合のフレームワークの違いは何ですか?

4

2 に答える 2

1

ストアに次のプロキシ構成を使用します (ExtJS v6.5.2):

proxy: {
    url: 'api/search',
    paramsAsJson: true,
    actionMethods: {
        read: 'POST'
    },
    type: 'ajax',
    reader: {type: 'json'}
},

パラメータを JSON として送信します。

{"page":1,"start":0,"limit":25}
于 2019-02-20T18:08:50.337 に答える
0

それはさらに別の ExtJS の問題のようです。

ここで修正を見つけました:

http://www.sencha.com/forum/showthread.php?196194-Ajax-Store-Send-Params-as-JSON-Body

于 2012-08-13T08:10:19.223 に答える