1
我是ExtJs的新手。我正在開發一個使用JSP
的Web應用程序。在那裏,有一個servlet
叫ShowProductInferenceServlet
。當我使用AJAX
調用訪問servlet
時,它會很好地返回響應。這裏是使用jQuery
的AJAX
呼叫。加載數據存儲Extjs動態指定代理
$.get("ShowProductInferenceServlet", {
levelFlag : levelFlag,
level1 : selectedCategory,
level2 : selectedSubCategory,
level3 : selectedProductName,
level4 : selectedMaxQty,
}, function(responseText){
alert("Shown Inference : " + responseText);
});
既然servlet
工作正常,我想用從servlet
的響應來填充datastore
。我爲datastore
動態創建proxy
,因爲有其他servlets
使用相同的數據庫,如果我事先聲明proxy
爲datastore
,我遇到鎖定問題。這裏是我用於datastore
的代碼。
var dataStorePrimaryInferences = Ext.create('Ext.data.Store', {
storeId : 'dataStorePrimaryInferences',
fields : [ 'code', 'text', 'confidence' ],
autoLoad : false,
proxy : {
listeners : {
exception : function(proxy, response, operation, eOpts) {
console.log('exception' + response.responseText);
}
}
},
});
以下是動態分配proxy
及相關細節的代碼。
dataStorePrimaryInferences.getProxy.type = 'ajax';
dataStorePrimaryInferences.getProxy.url = 'ShowProductInferenceServlet';
dataStorePrimaryInferences.getProxy().getReader().type = 'json';
dataStorePrimaryInferences.getProxy().getReader().root = 'result';
dataStorePrimaryInferences.getProxy().setExtraParam("levelFlag", levelFlag);
dataStorePrimaryInferences.getProxy().setExtraParam("level1", selectedCategory);
dataStorePrimaryInferences.getProxy().setExtraParam("level2", selectedSubCategory);
dataStorePrimaryInferences.getProxy().setExtraParam("level3", selectedProductName);
dataStorePrimaryInferences.getProxy().setExtraParam("level4", selectedMaxQty);
dataStorePrimaryInferences.load();
當我運行該程序時,我在Web控制檯中出現此錯誤。
Uncaught TypeError: Cannot read property 'indexOf' of undefined
錯誤的蹤跡似乎指向load()
。有人能告訴我哪裏錯了嗎?
在此先感謝。
你的json響應是什麼樣的? – mindparse 2015-02-08 13:56:55
Plz檢查你得到的確切響應並用它更新你的文章 – 2015-02-08 19:01:20
你能看到正在向ShowProductInferenceServlet發出的網絡請求嗎?另外,對於代理,您應該使用setUrl()而不是.url方式。 – mindparse 2015-02-09 10:22:57