非常非常奇怪的问题---“浏览器把接收到的结果改变了”? 400 报错
后台日志:
上一个请求,抓包拿到的值是155
浏览器接收到的
下一个请求,抓包传回来的确实156
简单来说,后台传的值通过网络传输到客户端浏览器,值被改变了 --!
但是在客户机网卡接收到的时候值还是正常的
这个问题太奇怪了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
整数 10025910025910155 超过 MAX_SAFE_INTEGER 了,
后台应该返回字符串形式的 apiId
######正解~!######正解######回复 @特拉仔 : 验证很简单, 打开浏览器控制台输入 x = 10025910025910155######谢谢,你提出的可能是最根本的问题,我接下来去验证一下 因为对前端所知甚少,在问一点别的问题: NUMBER.MAX_SAFE_INTEGER会影响浏览器解析JSON在调试窗口的呈现么。能够把这个过程详细描述一下喃。想学习一下######排除掉一切不可能,剩下的就是真理。
浏览器不可能有任何逻辑把你的155“加1”成156,这是不可能的。
剩下的真理:你的程序有Bug、你的抓包逻辑不对、有可能是重复请求导致。
总之:浏览器不会骗人,是你错了!
######用curl直接测,不走浏览器,估计结果是一样的。
######这个思路我咋没想到喃
######浏览器没有偷偷改返回数据的能力
######数据走数据库的吗 不可能改到数据库的值
######统一回答:整数 10025910025910155 超过 MAX_SAFE_INTEGER 了喻恒春 ,给出了正确的回答。
导致这个奇怪的问题出现是因为对JS的数据类型边界不清楚导致说出“浏览器修改了返回值”的谬论。
######下回用字符串传参 计算别交给前端 别把JS当成一个完成的语言,尤其是运行在浏览器的JS