问题描述
在序列化参数传给后端接口时,出现很多null值,排查代码无解。进入断点调试后,问题出现在:
javascriptCopy code- 1
- 2
- 3
JSON.stringify({
test: $('#test').val()
})
JSON.stringify({
test: $('#test').val()
})
若val调用(或者.value属性)返回空串,在IE8下的转换结果将是:{"test":"null"}。但直接输出val()或value值,显示的均是空字符串。
定位到问题,再去网上搜索根源和解决方法,也是费了一番周折。所幸最终找到,确定这是IE8的一个Bug,手动擦汗……
问题解决
显式和空串拼接后再进行序列化:
javascriptCopy code- 1
- 2
- 3
JSON.stringify({
test: $('#test').val() + ''
})
JSON.stringify({
test: $('#test').val() + ''
})
或者,将json2.js中的JSON对象改名为JSON2等,并以此名称进行调用。