当前位置: 首页 → 爱前端 → 

JavaScript

IE8下JSON.stringify()为null问题

 

问题描述

在序列化参数传给后端接口时,出现很多null值,排查代码无解。进入断点调试后,问题出现在:

JSON.stringify({
    test: $('#test').val()
})

若val调用(或者.value属性)返回空串,在IE8下的转换结果将是:{"test":"null"}。但直接输出val()或value值,显示的均是空字符串。

定位到问题,再去网上搜索根源和解决方法,也是费了一番周折。所幸最终找到,确定这是IE8的一个Bug,手动擦汗……

问题解决

显式和空串拼接后再进行序列化:

JSON.stringify({
    test: $('#test').val() + ''
})

或者,将json2.js中的JSON对象改名为JSON2等,并以此名称进行调用。

参考

  1. 帮倒忙的IE8 JSON.stringify()
🔚
 

*

*

*

*