2021-07-07 URL传参bug分析

url传参容易遇到2种问题:
1、参数中含有特殊字符:比如#、$、?或者中文等,这不符合网络标准RFC1738规定,浏览器会以此截断我们的参数,如果我们在传参数时恰巧还用了JSON.stringify(),接收页用了JSON.parse(),那绝对会因为参数被截断而报错。这种情况下可以使用encodeURIComponent()编码,在接收页再解码一下,就OK了。
2、参数过长:在开发的时候不要传那么长的参数就好,这是常识,因为浏览器和服务器对参数都有长度限制,并且每个浏览器还不一样,这样非常不保险。
值得注意的是,网上有很多帖子说可以用encodeURIComponent()解决参数过长的问题,我认为这些大佬说的不对,encodeURIComponent()解决的是特殊符号的编码,避免浏览器把这些字符错当成连接符既而截掉了参数。而且就算参数过长,用encodeURIComponent()编码之后长度应该不会变少,反而是变多。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 开发过程中遇到一个问题,就是在用GET方法请求接口的时候,传入的参数值中,+号会被转化为空格,传给后台。 传入的参...
    冰雪_318阅读 12,091评论 1 3
  • 最近写了一个项目帮助安卓画和h5页面,需要安卓那边跳转拿参但是发现拿到参数的格式跟安卓给我说的不一样很多字符被浏览...
    奔三望四没二够阅读 11,131评论 0 5
  • 一,JavaScript的书写格式 1.行内脚本:写在HTML标签内部,通过一个属性节点来添加,不推荐使用,例如“...
    刘远舟阅读 3,375评论 0 0
  • 摘要 本文主要针对URI编解码的相关问题做了介绍,对Url编码中哪些字符需要编码、为什么需要编码做了详细的说明,并...
    videring阅读 4,200评论 0 0
  • 我们通过HTTP协议传输参数时,参数是以"key=value"这种键值对形式存在的,如果要传多个参数就需要用"&"...
    赵客缦胡缨v吴钩霜雪明阅读 3,359评论 0 6