今天甲方反应订单发货时不显示订单号,经过排查发现前端请求数据时,订单号字段被丢弃了。部分代码如下:
$.ajax({
type: 'POST',
url: '{:U("order/opsend")}',
data: {id:order_id,express:express,shipping_no:shipping_no},
success: function(res){
res = JSON.parse(res);
if(res.status == 1){
show_msg('发货成功!',1)
show_msg('两秒后自动刷新页面!')
setTimeout(function(){
window.location.href=res.result.url;
},2000)
}else{
show_msg(res.result.message);
}
},
error: function(){
show_msg('服务器异常响应,请稍后重试!');
}
})
这看起来没有任何问题,但是一提交ajax请求,订单号shipping_no就被舍弃了,百思不得其解,甚至怀疑原项目负责人劫持了原生的ajax方法,修改了data数据,可是排查无果。后来又验证是否走了该方法,修改了字段名,测试后发现只有值为shipping_no时才会出现丢弃字段的情况。找到问题所在后,就简单了,原来是shipping_no没有获取到对应的值,结果变成了undefined,以至于ajax舍弃了数据。