现在有一个问题,比如说我们为好几个界面写了一个公共的删除方法,
其中id 表示要删除的id;
key 表示后端接口除了要接收'id'参数外还要接收的一个动态参数;
val 表示后端接口接收的另一个动态参数对应的值。
baseDel : function(id,key,val){
var param = {'id':id,key:val};
......
}
在界面A我们要调用这个删除方法并传递两个参数'id'和'name':
var id = 1000,
key = 'name',
val = '王尼玛';
this.baseDel (id,key,val);
当我们发送请求时,按我们的预想查看请求的post是这样的:
id : 1000
name : 王尼玛
这样后台接口就能根据参数名自动接收到参数对应的值。
但是,然并卵,真实post过去的数据是这样的:
id : 1000
key: 王尼玛
问题就来了,我们明明传了字符串'name'怎么还是以key发送呢?原来你在构建参数param对象时extjs就把你作为key位置的代码当作参数发送了,而不会动态的根据你传的值来发送。拿我们该怎么办呢?看下面代码:
baseDel : function(id,key,val){
var param = {'id':id};
param[key] = val;
}
通过这种写法,我们在查看请求的post时就会发现,post过去的数据是按照我们的想象发送啦!
ExtJs6 发送ajax如何动态改变发送参数的参数名的解决方法
最新推荐文章于 2023-05-16 15:11:20 发布