当向后台请求get服务时,若url中带有#,浏览器会自动忽略,不会把它拼接在url后面,这个时候需要使用encodeURIComponent进行编码。

  • 为什么不能使用encodeURI

encodeURI 自身无法产生能适用于HTTP GETPOST请求的URI,例如对于 XMLHTTPRequests, 因为 "&", "+", 和 "=" 不会被编码,然而在GETPOST 请求中它们是特殊字符。使用encodeURIComponent这个方法会对这些字符编码。

  • encodeURIComponent

为了避免服务器收到不可预知的请求,对任何用户输入的作为URI部分的内容你都需要用encodeURIComponent进行转义。比如,一个用户可能会输入"Thyme &time=again"作为comment变量的一部分。如果不使用encodeURIComponent对此内容进行转义,服务器得到的将是comment=Thyme%20&time=again。请注意,"&"符号和"="符号产生了一个新的键值对,所以服务器得到两个键值对(一个键值对是comment=Thyme,另一个则是time=again),而不是一个键值对。

  • encodeURIComponentencodeURI 不同点
var set1 = ";,/?:@&=+$";  // 保留字符
var set2 = "-_.!~*'()";   // 不转义字符
var set3 = "#";           // 数字标志
var set4 = "ABC abc 123"; // 字母数字字符和空格console.log(encodeURI(set1)); // ;,/?:@&=+$
console.log(encodeURI(set2)); // -_.!~*'()
console.log(encodeURI(set3)); // #
console.log(encodeURI(set4)); // ABC%20abc%20123 (the space gets encoded as %20)console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24
console.log(encodeURIComponent(set2)); // -_.!~*'()
console.log(encodeURIComponent(set3)); // %23
console.log(encodeURIComponent(set4)); // ABC%20abc%20123 (the space gets encoded as %20)

请求后台时对uri进行编码——即encodeURIComponent()的使用相关推荐

  1. SpringBoot+Vue实现请求后台获取Base64编码的图片验证码并使用Redis缓存实现2分钟内有效

    场景 前端Vue的登录页面,验证码请求后台,后台生成验证码照片后使用Base64编码后, 返回给前端,前端进行显示. 注: 博客: https://blog.csdn.net/badao_liuman ...

  2. Ajax请求SSM后台时提示:Invalid character found in the request target. The valid characters are defined in RF

    场景 前端使用SSM请求后台时提示: Invalid character found in the request target. The valid characters are defined i ...

  3. Jquery中使用ajax请求SSM后台时提示:org.springframework.http.converter.HttpMessageNotReadableException: Could no

    场景 Jquery中使用ajax向SSM后台请求数据时提示: org.springframework.http.converter.HttpMessageNotReadableException: C ...

  4. HTTP GET/POST 请求时,空格应该编码为 %20 还是 +?

    「灵异」的空格 1.%20 还是 + ? 这个是个史诗级的大坑,我曾经被这个协议冲突坑了一天. 开始讲解前先看个小测试,在浏览器里输入 blank test( blank 和 test 间有个空格), ...

  5. URL请求后台获取不到特殊字符的参数

    URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 如果请求的UR ...

  6. SpringBoot+zxing+Vue实现前端请求后台二维码图片

    场景 ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. github地址: https://github.com/zxing/zxing 若依微服务版手把手教你本地搭建环境 ...

  7. ajax请求后台报没有body_前端常见面试 - 请求篇

    对于前端来说,请求是前端日常工作必备的,通过请求才能与后端进行数据交互,尤其在现在前后端分离的开发模式下,请求显得就更加重要.因此,对于前端开发者来说,掌握请求就很重要.下面将从 http 请求和常见 ...

  8. 微信小程序request请求后台接收不到参数问题

    微信小程序request请求后台接收不到参数问题 一. 小程序部分代码 二. 后端 三. 问题代码 四. 请求头 一. 小程序部分代码 发一个普通的request请求 wx.request({url: ...

  9. PostMan怎样携带登录信息请求后台接口防止出现无法访问资源问题

    场景 前后端分离的项目. 前端在登录后请求后台的接口. 在使用postman进行测试后台接口时如果直接通过url进行访问 会提示认证失败,无法访问系统资源 注: 博客: https://blog.cs ...

最新文章

  1. Eclipse里的文件搜索
  2. 合并代码还在用git merge吗?我们都用git rebase!
  3. C#图片处理示例(裁剪,缩放,清晰度,水印)
  4. NLPIR语义挖掘建互联网内容处理全技术链条
  5. Tesseract——OCR图像识别 入门篇
  6. 多领导者改进算法的MATLAB仿真
  7. .htaccess伪静态实例记录
  8. HDU - 4507 吉哥系列故事——恨7不成妻(数位dp)
  9. EPPLUS之外的选择,EXCEL的操作(NPOI,POI(java))
  10. 更改tomcat自带的logo
  11. Appfuse 教程
  12. python numpy库_numpy库学习总结(基础知识)
  13. tcp转串口_单路RS232/422/485串口服务器产品介绍
  14. RTOS osDelay和taskDelay关系
  15. Ceph RBD 使用详细说明
  16. 阿尔茨海默病最新研究进展(2021年)
  17. 茶艺概述20210411
  18. 图-154飞机简直就是杀人凶器
  19. java毕业设计铝塑门窗的研制和生产管理源码+lw文档+mybatis+系统+mysql数据库+调试
  20. 计算机程序设计实验报告4答案,程序设计实验报告4

热门文章

  1. 免费的期刊论文文献检索网站(收集整理)
  2. STM32F4+DP83848以太网通信指南系列知识储备
  3. TS文件下载器(按照M3U8列表 批量下载)
  4. Risc-v 技术架构
  5. java导出excel插入图片
  6. 修改服务器端口后防火墙要设置吗,服务器设置完防火墙需要重启吗
  7. 【机器学习实战】k-近邻算法案例——改进约会网站的配对效果
  8. 由开发者的人品问题领略测试人员的人品问题
  9. CreateFont(MFC)字体设计
  10. CodeWarrior flash