参数带[object Object],请求错误码400

项目中使用了EasyUI的下拉选择框,在远程获取下拉选择框数据时,发送的请求报错,错误码400,原因是参数中有“[object Object]”。

  1. 我先查看了EasyUI的源代码,发现发送Ajax请求的源码中,直接将一个空对象“{}”作为“data”的参数,导致了最后的请求中带上了多余的部分。
  2. 于是我又查看了jQuery(1.12.4)的源码,发现其中有一个对于空对象的判断,if({}) 这种判断在JavaScript中为真,进入了一段在URL后面添加“data”属性的逻辑,直接连接字符串会把空对象变成“[object Object]”添加到最终的URL后面。
 if ( s.data ) {  
    cacheURL = ( s.url += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data );  
    delete s.data;  
}  
  1. 上述的行为,导致Tomcat的某个版本之后,认为这种URL是非法的,从而抛异常,返回400错误码。

要解决以上问题,可以降低Tomcat版本,或者选择其他认可这种URL的Web容器。或者对Tomcat进行一些设置(可自行搜索相关异常信息,找到设置的方法)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值