这是因为你序列化里面的对象存在循环引用导致的
以下这种情况,使用 JSON.stringify 就会报你这个错
var person = { name: 'hi', age: 3 } person.info = person JSON.stringify(person)解决方法:将循环引用的对象进行处理
// 定义一个深拷贝的函数 var deepcopy = function() { let cache = []; let str = JSON.stringify(state, (key, value) => { if (typeof value === 'object' && value !== null) { if (cache.indexOf(value) !== -1) { // 移除 return; } // 收集所有的值 cache.push(value) } return value }) cache = null // 清空变量,便于垃圾回收机制回收 return str } // 先深拷贝,在序列化 JSON.stringify(deepcopy(person))