遇到了奇怪的渲染错误,页面白屏。查看错误: Unexpected EOF Stack: [native code]。机器上遇到了该错误,然而开发者工具没有这个错误。
最终 debug 出来是因为运营配置的一段文本中,出现了换行符: \u2028,导致了 wx.request 中 parseJSON 的部分执行发生错误。删除这个字符后,请求顺利成功,页面也渲染出来了。
搜索了一下这个错误,大胆的推测微信这边的 wx.request 使用的是被弃用的 jQuery.parseJSON,其中的 jQuery.parseJSON 已经被 JSON.parse 所替代。而 Unexpected EOF 正是 parseJSON 才会抛出的错误。
微信的同学如果对这个神奇的 Bug 感兴趣,可以自己试一下,启一个简单的 http server,然后在一个 request 中返回 '\u2028'。然后在小程序中调用一下 wx.request 试试。
如果你在 chrome 的 console 中,粘贴这个字符可能会展现为一个神奇的 ·
楼主你好,对于你反馈的问题我查阅资料后进行了整理,重新反馈给微信官方:
https://developers.weixin.qq.com/community/develop/doc/0000eed41dcbc05780a7acc1951000
你好。。这个问题解决了么。。这边也出现了这个问题
你解决了吗?我目前也遇到这个问题了
同样的问题遇到好几次了,麻烦微信的同学尽快处理下,谢谢
遇到同样的问题,希望微信的同学尽快关注解决一下
找到了几个可能有助于问题理解的资料: https://opensource-experts.blogspot.hk/2017/03/json-stringify-web-javascript-reference.html
https://stackoverflow.com/questions/2965293/javascript-parse-error-on-u2028-unicode-character
https://github.com/expressjs/express/issues/1132
恳请微信的同学关注一下这个问题,至少过滤一下 \u2028 和 \u2029 这两个 unicode 字符串,谢谢。
没人么?
这个问题有记录和调查吗?
如果 console 里出现了神秘的圆点,说明复制对了。就是这个神奇的换行符:http://www.fileformat.info/info/unicode/char/2028/index.htm 导致了 wx.request 莫名其妙的崩溃。
请复现一下,如果有任何进展都请在这个帖子下面沟通。我会持续关注这个问题的。
据我后来跟进,运营使用了 Pages 进行文本编辑,然后拷贝粘贴到后台,后台又传给小程序,才导致的错误。
浏览器对 JSON.parse 的实现已经不会出现这个错误了。请微信的同学使用标准的写法。
看上去并不能直接复制。这个社区的文本好像转义了。总之 '\u2028' 是可以的。
你好想请问您是如何解决这个问题的,是前端处理过滤掉,还是后端直接删除