昨天收到一个运营反馈的问题,系统进入了不该进入的数据。
业务的场景就是,用户输入一个订单号,系统会根据输入的订单来进行判断当前的状态。
测试环境模拟,输入同等状态的订单,结果正常,系统会正常的拦截这部分数据。
于是找线上环境模拟也模拟不出来,最后又觉得是不是浏览器的问题,于是从firefox,chrome,ie等进行再现,也是没有出来。再后来尝试用拷贝订单、手工输入两种方式来进行测试,发现ie下拷贝订单时,再粘贴的话,后面会多出一个空格出来,现象出现了,系统没有拦截!
[b]原因其实很简单:[/b]
调用的服务对传入的订单号查询,没有做trim操作,导致判断条件查询不到,控制不起作用,导致这批数据进来了。
[b]解决方案也很简单:[/b]
在前台将数据trim之后再传入到后台处理。
[b]总结:[/b]
后面对前台用户输入的内容一定要做对应的空格的过滤,否则一个简单的空格,可能会出现比较诡异的问题。
业务的场景就是,用户输入一个订单号,系统会根据输入的订单来进行判断当前的状态。
测试环境模拟,输入同等状态的订单,结果正常,系统会正常的拦截这部分数据。
于是找线上环境模拟也模拟不出来,最后又觉得是不是浏览器的问题,于是从firefox,chrome,ie等进行再现,也是没有出来。再后来尝试用拷贝订单、手工输入两种方式来进行测试,发现ie下拷贝订单时,再粘贴的话,后面会多出一个空格出来,现象出现了,系统没有拦截!
[b]原因其实很简单:[/b]
调用的服务对传入的订单号查询,没有做trim操作,导致判断条件查询不到,控制不起作用,导致这批数据进来了。
[b]解决方案也很简单:[/b]
在前台将数据trim之后再传入到后台处理。
[b]总结:[/b]
后面对前台用户输入的内容一定要做对应的空格的过滤,否则一个简单的空格,可能会出现比较诡异的问题。