一、问题的产生:
前端技艺不精导致各种照猫画虎,但照猫画虎的前提也应该是 二者都属于猫科动物,否则问题就出现了。
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() {
......
}
});