0

次のサーバー応答を受け取りました。

callback({ "data": [ { "id": "13_gnomodotiseis", "id1": 13, "title": "5/2009 ΓΝΜΔ ΕΙΣΑΠ 2009", "text": "5/2009 ΝΜΔ ΕΙΣΑΠ", "モデル": "gnomodotiseis", "body": "σίλει...", "type": "text", "history": "old", "url": "", "search_tag": "Γνωμοδοτήσεις", "new_element ": "true" } ], "データセット": 1 })

次のようなストア定義があります。

var baseUrl = 'http://localhost:8090/'; 

Ext.define('Ktimatologio.store.NewSingleBlockStore', {
    extend: 'Ext.data.Store',
    alias: 'widget.newsingleblockstore',

    requires: ['Ktimatologio.model.NewSingleBlockModel'],

    model: 'Ktimatologio.model.NewSingleBlockModel',

    groupField: 'search_tag',

    fields: [    
        {name:'id', mapping:'id'},
        {name:'id1', mapping:'id1'},
        {name: 'text', mapping: 'text'},
        {name: 'title', mapping: 'title'},
        {name: 'fek', mapping: 'fek'},
        {name: 'date', mapping: 'date'},
        {name: 'descr', mapping: 'description'},
        {name: 'model', mapping: 'model'},
        {name: 'body', mapping: 'body'},
        {name: 'type', mapping: 'type'},
        {name: 'history', mapping: 'history'},
        {name: 'src', mapping: 'url'},
        {name: 'search_tag', mapping: 'search_tag'},
        {name: 'new_element', mapping: 'new_element'},
        {name: 'new_table', mapping: 'new_table'}
        ],

    autoLoad: true,    

    proxy: {
        //type:'ajax',
        type:'jsonp',
        url: baseUrl + 'openbd/ktimatologio-final/resources/cfScripts/nea_stoixeia/GetNews.cfc?',
        callbackKey: 'callback',
        extraParams: {
            method: 'jsonP'
            },
        reader:{
            type: 'json',
            root: 'data'
        }
    } 

});

私がfirebugで見ているURL:

http://localhost:8090/openbd/ktimatologio-final/resources/cfScripts/nea_stoixeia/GetNews.cfc?&_dc=1345305032559&method=jsonP&page=1&start=0&limit=25&group=[{"プロパティ"%3A"検索タグ"%2C"方向"%3A"ASC"}]&sort=[{"property"%3A"search_tag"%2C"direction"%3A"ASC"}]&callback=Ext.data.JsonP.callback2

Firebug がエラーを表示: 「ReferenceError: コールバックが定義されていません」

私の質問は次のとおりです。

Ext.data.JsonP.callback2 は URL のどこから表示されますか?

ここで何が欠けていますか?Extjs4.1 の jsonP はどのように機能しますか?

私は本当にこれについて助けが必要です。

前もって感謝します、

トム

ギリシャ

4

1 に答える 1

0

応答で間違った関数名を使用しています。リクエストのURLを見ると、レスポンスが呼び出す必要のある関数名で送信されていることがわかります。これをレスポンスデータで使用する必要があります:&callback = Ext.data.JsonP.callback2、つまりレスポンス単なるコールバックではなく、関数Ext.data.JsonP.callback2を呼び出す必要があります。したがって、この例の場合、サーバーは代わりにこれを応答として返す必要があります。

Ext.data.JsonP.callback2({ "data": [ { "id": "13_gnomodotiseis", "id1": 13, "title": "5/2009 ΓΝΜΔ ΕΙΣΑΠ 2009", "text": "5/2009 ΓΝΜΔ ΕΙΣΑΠ ", "model": "gnomodotiseis", "body": "σίλει...", "type": "text", "history": "old", "url": "", "search_tag": "Γνωμοδοτήσεις", "new_element": "true" } ], "dataset": 1 })

これは、callback=Ext.data.JsonP.callback2がリクエストで送信されたためです。

于 2012-08-20T18:05:28.703 に答える