一、为什么要使用encodeURI和encodeURIComponent

为了保证前后端的传值是相同的编码格式

二、encodeURI和encodeURIComponent的区别

encodeURI解析范围不包含如下字符:; , / ? : & = + $- _ . ! ~ * ' ( ) 字母 数字
使用场景:如果URL中的查询参数没有特殊字符,可用于转码整个带中文参数的URL查询参数中刚好有? = &不被解析转化前: location.href = "http://localhost:8080/pro?a=1&b=张三&c=aaa";转化后: location.href = "http://localhost:8080/pro?a=1&b=%E5%BC%A0%E4%B8%89&c=aaa"encodeURIComponent解析范围不包含如下字符:- _ . ! ~ * ' ( ) 字母 数字
使用场景:用于参数的传递,参数包含特殊字符可能会造成间断。比如:var paramUrl = "http://localhost:8080/aa?a=1&b=2&c=3";var url = "http://localhost:8080/pp?a=1&b="+ paramUrl ;应该使用encodeURIComponent(paramUrl)进行转码,结果:http://localhost:8080/pp?            a=1&b=http%3A%2F%2Flocalhost%3A8080%2Faa%3Fa%3D1%26b%3D2%23%26c%3D3

三、前后端配合使用的一些做法

1、前端编码传给后端,后端解码
2、前端编码两道,后端解码两道

请求-encodeURI相关推荐

  1. ajax提交相对路径报错,ajax提交请求为啥url要用这个函数encodeURI

    参考如下: 如果你是通过form提交的,那就不需要用这个了.但是如果是你使用url的方式 例如:ajax提交到后台的,就需要对url进行encodeURI编码, 否则,会导致后台出现各种乱码,不加en ...

  2. get请求乱码问题,用encodeURI和decodeURI

    get请求乱码问题,用encodeURI和decodeURI 就是前端href=""拼接成一个字符串,如 http://localhost:8888/webpage/cn/ares ...

  3. axios使用post请求的时候后台接收不到参数

    2019独角兽企业重金招聘Python工程师标准>>> import axios from "axios"; import qs from "qs&qu ...

  4. encodeURIComponent或者encodeURI 不用行不行?

    调研条件 客户端:qq浏览器.firfox.chrome 测试用例 url中path带汉字 url中query带汉字 页面中get请求或者post请求 页面中meta元数据 charset=" ...

  5. Get,Post请求中文乱码问题有效解决方法

    对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考 ...

  6. escape()、encodeURI()、encodeURIComponent()区别详解

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  7. jsonp请求url长度过长的替代(ajaxcdr的使用)

    问题描述:跨域使用jsonp时url过长的问题 问题解释: 跨域请求时,若用jsonp请求(详情见:MVC4 Web Api 与 Ajax交互存在的跨域问题总结)jsonp因是请求的script标签, ...

  8. ajax 请求如何解决乱码

    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...

  9. 解决url请求参数带中文时后台获取出现乱码问题

    第一种方法: var url = encodeURI(url);前端js先编码一次, 后台:String test=newString(request.getParameter("test& ...

最新文章

  1. 第十九章 19 利用私有继承来实现代码重用
  2. SQLAlchemy()分页器paginate方法
  3. python中update什么意思_如何在Python中更新字典中键的值?
  4. linux网络编程-----项目管理工具-----Makefile
  5. gvim文本编辑器帮助_如何帮助您的文本编辑器帮助您
  6. CentOS6.5 调整 /home 挂载 分区大小
  7. 苏州新导监狱戒毒行业工具资产智能管理
  8. libaio在mysql中的作用,ubuntu安裝mysql遇到的坑----解決Mysql報錯缺少libaio.so.1
  9. 简单工厂,工厂方法,抽象工厂思想-手机时代的变迁
  10. 职场思想分享009 | 一个人对待工作的态度决定其成绩的多少?
  11. 机器学习经典模型简单使用及归一化(标准化)影响
  12. 奇安信Java后端一面
  13. shell 特殊符号大全
  14. 数据结构栈的简单实现(JAVA)
  15. IT项目管理的六种错误思维
  16. ARGOX CP-2140MPPLB18X60药柜
  17. Hibernate中的一对多关系映射
  18. jsl(jsl音响)
  19. LW-基于知识图谱的专利推荐系统设计与实现(分类号:TP311 单位代码:10422)观后总结
  20. H264和X264究竟有什么区别?

热门文章

  1. 在教室里结束红蜘蛛的控制
  2. note3 android system recovery,三星note3 N9008V官方刷机包
  3. android 6.0默认壁纸,我伙呆!安卓6.0壁纸竟然是这样得来的
  4. 【高性能计算背景】《并行计算教程简介》翻译 - 中文 - 4 / 4
  5. 我在itpub的日子——写在itpub八周年之际
  6. 测试人员如何面对开发人员的洗脑?
  7. 《听什么歌都像是在唱自己》——网易云音乐那些热评
  8. swoft 2启动rpc
  9. 【华为OD机试Python实现】HJ38 求小球落地5次后所经历的路程和第5次反弹的高度(中等)
  10. phpcms 专题功能