记一次node上的小采坑 [TypeError: Converting circular structure to JSON]
最近在做微信授权登陆,因为安全性,Acess_Token这一部分是在node上获取,然后再返回给前端。
node用的axios,在获取Acess_Token的时候axios的catch捕获到了一个错误,[TypeError: Converting circular structure to JSON]。
百度搜了一下说是因为 JSON.stringify 引起的,不记得写过JSON.stringify,但还是找了找,就那么几行的代码翻了个底朝天也没看到哪怕有一句的 JSON.stringify。
从头到尾排各种错误各种调试,真是想不出来是哪里的错误,甚至还想换成JQ或者fetch试试,结果……暂且不提。
干脆把ajax那部分的业务逻辑代码全部注释掉,然后只输出获取到的信息,结果catch没有异常了,直接输出了获取到的结果。
找到了突破口就好说了,接下来又一步一步的调试,发现问题是出现在 res.send 的身上。
ajax返回来的数据我放在了一个对象中的属性里,报错。
但是如果只获取拿到的数据中的data字段,也就是不包括axios上的信息只有微信的信息(access_token, expires_in, refresh_token, openid, scope),就可以正常返回了。
初步估计是因为axios返回结果比较特殊,无法正常返回,具体研究有时间会研究一下,这里做一个小标记。
作者:轻言忘语
博客地址:http://www.cnblogs.com/xwant
友情提示:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文章可能存在思路或者理解上的偏差 如果各路高手有意见或建议,还望指点一二