0

json データを使用してフォーム フィールドを読み込みたい。私はデータを取得するためにUIとasp.net webapiにextjs 4.1を使用しています。私の目的は、データをロードし、フィールドの名前がdata.fieldnameプロパティに対応する場合にform.loadが使用されるフィールドに動的にバインドすることです。

以下のリンクを参考にしました: Ext JS: FormPanel がフィールドに JSON データを入力していません

Webapi が同じプロジェクトにある場合、データをロードします。つまり、プロジェクト名: --ui フォルダー -- webapi コントローラー フォルダー

しかし、私の場合、データは ui と webapi の異なるドメイン 2 の異なるプロジェクトから来ています。私の form.load コードは以下の通りです

formCmp.getForm().load({
    url: 'http://localhost/WebApiCore/api/Values/',
    method: 'GET',
    headers: {'Content-type': 'application/json'},
// params: {
//          empId: '111'
//         },
    success: function (form, action) {
        console.log(action.result);
        //Ext.Msg.alert("Load success", action.result);
    },
    failure: function (form, action) {
        //Ext.Msg.alert("Load failed", action.result.errorMessage);
    }
    });

firebug で "NetworkError: 405 Method Not Allowed - " http://localhost/WebApiCore/api/Values/?_dc=1340261175475 " というエラーが表示されます。

私のプロジェクトは「http://localhost:54118/PreHospital.htm」で実行されています

extjs が form.load を使用してクロス ドメイン リクエストを送信しないという問題なのか、webapi の問題によってクロス ドメイン リクエストが許可されないのか、私にはわかりません。

form.load を使用して jsonp リクエストを送信するように extjs を設定する方法がわかりません。

どんな種類の助けも大歓迎です。

4

1 に答える 1

1

Extフォームに通常のフォームフィールドがある場合、実際にはAJAX呼び出しを実行してこのデータを送信します。form.loadにJSONPリクエストを強制する方法はないと思います。おそらく、手動のAJAXリクエストと同じように、手動のJSONPリクエストを実行する必要があります。

        Ext.data.JsonP.request({
            url         : websiteURL,
            scope       : this,
            params      : {
                empId: '111'
            },
            success     : function(jsonData) {

            },
            failure     : function(jsonData) {
                Ext.Msg.show({
                    title   : 'Warning',
                    msg     : message,
                    buttons : Ext.Msg.OK,
                    icon    : Ext.Msg.WARNING
                });
           }
    });
于 2012-07-02T20:08:58.650 に答える