我们有一个rest的api,接收自己web页面提交的json作为参数.
开发环境没任何问题.但上线后从应用服务器的错误日志中发现api偶尔收到json为乱码.
比如:
n��^YhN�I~�)n�n�8��jn8X��*eC�3��scS"�"F�6GW'V"�"�f��V7�F��C#C&cCcSS��C�#�V3#fVc&��6C#sCCsCS#SSC"�"GV��GV"�""�"Ɩ�"�"�GG�����wV������6���7���&���Ԧ�SԦw�E���w��b֖F�#C3�cssb�F��3b7��S�6&�#�3SS&&33c6#f��FsC#���2'F"�"7V�f&�V"�f�7V�"6'VGVE��V"�"#S�3�#ss��#"�"�F"�"��C#C&cCcSS��C�#�V3#fVc&"
从错误日志来看一般为比较小众的android手机发起的错误请求.比如努比亚某型号.
我们用户基本在微信中访问web页面,而我们在web页面javascript发起ajax时都添加了
content-type:application/json;charset=UTF-8
请问出现此问题可能出现的原因有哪些?
1. 客户端浏览器兼容性的本身问题?
2. 应用服务服务端的解析逻辑问题?
针对移动手机的api遇到的问题千奇百怪.不知各位有没有遇到这种情况?
我也遇到了同样的问题,不论是基于angularjs的$http.post还是rails form,生产环境的日志显示常会遇到post数据无法解析的问题,和楼主一样的乱码...
已经查了几天了,找不到原因....
----------狗x的腾讯分割线------------
这个问题确认是Android微信的坑(bug),参考这个贴子:
http://bbs.csdn.net/topics/390992194
下面是我的回复....
哭了,终于找到组织了,泪流满面,我们用的阿里云,nginx作反代,后端是puma跑的Ruby on Rails,用户在微信网页里post表单,有用户会出现puma报的底层错误,通过nginx日志把请求体打印出来,发现了同样的情况,同一个表单在同一部手机里的同一时间内被post了两次到服务器,IP还不同。。,一次可以正常解析,一次无法解析
这样的问题只会发生在post请求上,但是我们用angularjs的另一个网站通过$http.post也发现了消息体乱码的情况,不知道是否与此有关。