请求后台时对uri进行编码——即encodeURIComponent()的使用
当向后台请求get服务时,若url中带有#
,浏览器会自动忽略,不会把它拼接在url后面,这个时候需要使用encodeURIComponent
进行编码。
- 为什么不能使用
encodeURI
encodeURI
自身无法产生能适用于HTTP GET
或 POST
请求的URI,例如对于 XMLHTTPRequests
, 因为 "&"
, "+"
, 和 "="
不会被编码,然而在GET
和 POST
请求中它们是特殊字符。使用encodeURIComponent
这个方法会对这些字符编码。
encodeURIComponent
为了避免服务器收到不可预知的请求,对任何用户输入的作为URI部分的内容你都需要用encodeURIComponent
进行转义。比如,一个用户可能会输入"Thyme &time=again"
作为comment
变量的一部分。如果不使用encodeURIComponent
对此内容进行转义,服务器得到的将是comment=Thyme%20&time=again
。请注意,"&"
符号和"="
符号产生了一个新的键值对,所以服务器得到两个键值对(一个键值对是comment=Thyme
,另一个则是time=again
),而不是一个键值对。
encodeURIComponent
和encodeURI
不同点
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()的使用相关推荐
- SpringBoot+Vue实现请求后台获取Base64编码的图片验证码并使用Redis缓存实现2分钟内有效
场景 前端Vue的登录页面,验证码请求后台,后台生成验证码照片后使用Base64编码后, 返回给前端,前端进行显示. 注: 博客: https://blog.csdn.net/badao_liuman ...
- 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 ...
- Jquery中使用ajax请求SSM后台时提示:org.springframework.http.converter.HttpMessageNotReadableException: Could no
场景 Jquery中使用ajax向SSM后台请求数据时提示: org.springframework.http.converter.HttpMessageNotReadableException: C ...
- HTTP GET/POST 请求时,空格应该编码为 %20 还是 +?
「灵异」的空格 1.%20 还是 + ? 这个是个史诗级的大坑,我曾经被这个协议冲突坑了一天. 开始讲解前先看个小测试,在浏览器里输入 blank test( blank 和 test 间有个空格), ...
- URL请求后台获取不到特殊字符的参数
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 如果请求的UR ...
- SpringBoot+zxing+Vue实现前端请求后台二维码图片
场景 ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. github地址: https://github.com/zxing/zxing 若依微服务版手把手教你本地搭建环境 ...
- ajax请求后台报没有body_前端常见面试 - 请求篇
对于前端来说,请求是前端日常工作必备的,通过请求才能与后端进行数据交互,尤其在现在前后端分离的开发模式下,请求显得就更加重要.因此,对于前端开发者来说,掌握请求就很重要.下面将从 http 请求和常见 ...
- 微信小程序request请求后台接收不到参数问题
微信小程序request请求后台接收不到参数问题 一. 小程序部分代码 二. 后端 三. 问题代码 四. 请求头 一. 小程序部分代码 发一个普通的request请求 wx.request({url: ...
- PostMan怎样携带登录信息请求后台接口防止出现无法访问资源问题
场景 前后端分离的项目. 前端在登录后请求后台的接口. 在使用postman进行测试后台接口时如果直接通过url进行访问 会提示认证失败,无法访问系统资源 注: 博客: https://blog.cs ...
最新文章
- Eclipse里的文件搜索
- 合并代码还在用git merge吗?我们都用git rebase!
- C#图片处理示例(裁剪,缩放,清晰度,水印)
- NLPIR语义挖掘建互联网内容处理全技术链条
- Tesseract——OCR图像识别 入门篇
- 多领导者改进算法的MATLAB仿真
- .htaccess伪静态实例记录
- HDU - 4507 吉哥系列故事——恨7不成妻(数位dp)
- EPPLUS之外的选择,EXCEL的操作(NPOI,POI(java))
- 更改tomcat自带的logo
- Appfuse 教程
- python numpy库_numpy库学习总结(基础知识)
- tcp转串口_单路RS232/422/485串口服务器产品介绍
- RTOS osDelay和taskDelay关系
- Ceph RBD 使用详细说明
- 阿尔茨海默病最新研究进展(2021年)
- 茶艺概述20210411
- 图-154飞机简直就是杀人凶器
- java毕业设计铝塑门窗的研制和生产管理源码+lw文档+mybatis+系统+mysql数据库+调试
- 计算机程序设计实验报告4答案,程序设计实验报告4