zTree / zTree_v3

jQuery Tree Plugin
MIT License
4.1k stars 1.28k forks source link

bug 当这样配置GET请求时,会导致服务响应出错,问号后面参数变成?{}&_=1628253644521 #486

Open fulicat opened 3 years ago

fulicat commented 3 years ago

https://github.com/zTree/zTree_v3/blob/be70dfab91925f9356298538337586ddb3748dd3/js/jquery.ztree.all.js#L1092

当这样配置时,会导致服务响应出错:

type: 'GET',
contentType: 'application/json; charset=utf-8',

请求变成了这样: http://ss.dev/api/query?{}&_=1628253644521

问题点:

  1. 空参数对象无需发送,可判断过滤掉;
  2. 非 POST 请求时,对象需要转换成 ?a=1&b=2 这种形式;

修复方法:

- data: setting.async.contentType.indexOf('application/json') > -1 ? JSON.stringify(tmpParam) : tmpParam,
+ data: setting.async.contentType.indexOf('application/json') > -1 ? (setting.async.type.toUpperCase() != 'POST'?$.param(tmpParam) : (Object.keys(tmpParam).length ? JSON.stringify(tmpParam) : '')) : tmpParam,
zTree commented 3 years ago

感谢,等我抽空去测试更新