一、問題的産生:
前端技藝不精導緻各種照貓畫虎,但照貓畫虎的前提也應該是 二者都屬于貓科動物,否則問題就出現了。
God,我不應該 “自認為” Ext.Ajax.request({})和$.ajax({})的success函數用法相同的。
下次,我要記住,不能醬紫寫了:
Ext.Ajax.request({
url : basePath + "/loadData.action",
method : 'POST',
params : {...},
success : function(<span style="color:#FF0000;">msg</span>) {
<span style="color:#FF0000;">var msg = Ext.util.JSON.decode(msg);</span> <span style="color:#FF0000;">//反面教材!!,firefox報錯:extjs missing ] after element list</span>
...
}
});
二、問題的解決:
下面給出Ext.Ajax.request({})中success函數的正确用法,并和$.ajax({})的success函數進行對比記憶。
(1)Ext.Ajax.request({}):
Ext.Ajax.request({
url : basePath + "/loadData.action",
method : 'POST',
params : {...},
<strong>//背景傳回前端了一個名為msg的對象,但貌似不展現msg的名字,msg的值被放在了response對象的屬性responseText中</strong>
success : function(<strong>response</strong>)<strong> </strong>{
<strong>var msg = Ext.util.JSON.decode(response.responseText); //正确版本</strong>
...
}.
failure : function() {
...
}
});
(2)$.ajax({}):
$.ajax({
url : basePath + "/loadData.action",
type : 'POST',
data : {...},
<strong>//背景傳回前端了一個名為msg的對象,前台通過對象名稱對接、擷取
</strong> success : function(<strong>msg</strong>) {
<strong>var msg = Ext.util.JSON.decode(msg); //ok</strong>
......
},
error : function() {
......
}
});