在使用Vue.js Axios开发的时候,遇到错误:
按钮对应元素点击后,报错 RangeError: Maximum call stack size exceeded
按钮点击后,也就是请求的http 接口,非常简单,没什么复杂的代码,竟然也报错,感觉很奇怪。
报错的函数调用链路有 axios plugin js 的错误。
最终找出来问题原因:
当底层的请求库(如 axios)试图对参数进行 JSON 序列化时,由于 Vue 的响应式对象内部包含循环引用,导致了 RangeError: Maximum call stack size exceeded(栈溢出)错误。
修复方法
将 Xid 修改为 Xid.value 解决了问题。
这些更改将确保传递给 API 的是基础数据类型,从而避免序列化过程中的循环引用问题。
这种循环引用的问题,理论来说,vue2 vue3 react 开发都会出现这种问题,开发的时候要注意。