2012-06-21 52 views
0

我想使用json數據加載表單域。 我使用extjs 4.1 for ui和asp.net webapi來獲取數據。 我的目標是加載數據並將其綁定到動態字段,如果字段名稱對應於data.fieldname屬性,則使用form.load。extjs form.load使用不同域服務器的url來獲取數據並綁定到字段

我採取了以下鏈接參考: Ext JS: FormPanel not populating fields with JSON data

它加載的數據,如果是的WebAPI在同一項目上: 即 項目名稱: --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不允許的方法 - 」 http://localhost/WebApiCore/api/Values/?_dc=1340261175475 「在Firebug

我的項目上運行」 http://localhost:54118/PreHospital.htm

我不知道是不是extjs使用form.load發送跨域請求的問題或與webapi的問題不允許跨域請求。

我不知道如何設置extjs發送jsonp請求使用m.load。

任何形式的幫助表示讚賞。

回答

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 
       }); 
      } 
    }); 
相關問題