0

我想使用 json 数据加载表单字段。我正在使用 extjs 4.1 for ui 和 asp.net webapi 来获取数据。我的目标是加载数据并将其动态绑定到 form.load 用于如果字段名称对应于 data.fieldnameproperty 的字段。

我已将以下链接作为参考: Ext JS:FormPanel 未使用 JSON 数据填充字段

如果 Webapi 在同一个项目上,它会加载数据:即 projectname: --ui 文件夹 -- webapi 控制器文件夹

但在我的情况下,数据来自不同的域 2 不同的 ui 和 webapi 项目。我的 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);
    }
    });

我在萤火虫中收到错误为“NetworkError:405 Method Not Allowed -” http://localhost/WebApiCore/api/Values/?_dc=1340261175475 ”。

我的项目在“ http://localhost:54118/PreHospital.htm ”上运行

我不确定是 extjs 没有使用 form.load 发送跨域请求的问题,还是 webapi 的问题不允许跨域请求。

我不确定如何设置 extjs 以使用 form.load 发送 jsonp 请求。

任何形式的帮助表示赞赏。

4

1 回答 1

1

如果您的 Ext Form 上只有常规表单字段,它实际上会执行 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 回答