js中传递特殊字符(+,&)的方法


Posted in Javascript onJanuary 16, 2014

背景:

今天在做一个任务时,用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长)。查了一上午,原来是我生成的字符串中有+号,而在js传递的时候,会理解为是连接字符用的,到了后台就将+号自动变为空格了,所以后台的字符串和前台生成的已经不一样了。

原因:

js后自动解析特殊字符,如+号为连接符,解析为空格,&为变量连接符,服务器端接受数据时&以后的数据不显示等等。

解决办法:

1、将字符放到form中,然后用js提交form表单到服务器。

2、将字符中的特殊字符替换成十六进制的字符,一些特殊字符与十六进制的对应关系:

 

+ 空格 / ? % & = #
%2B %20 %2F %3F %25 %26 &3D %23

str = str.replace(/\+/g,"%2B"); 将+号替换为十六进制 

3、最简单的一种,使用encodeURIComponent()函数。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

Javascript 相关文章推荐
JS:window.onload的使用介绍
Nov 13 Javascript
js数组操作常用方法
May 08 Javascript
微信小程序开发经验总结(推荐)
Jan 11 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
Aug 23 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
js实现导航跟随效果
Nov 17 Javascript
对layui中table组件工具栏的使用详解
Sep 19 Javascript
原生js实现随机点名功能
Nov 05 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
利用浏览器全屏api实现js全屏
Jan 16 #Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 #Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 #Javascript
javascript中验证大写字母、数字和中文
Jan 15 #Javascript
setTimeout自动触发一个js的方法
Jan 15 #Javascript
JS记录用户登录次数实现代码
Jan 15 #Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 #Javascript
You might like
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
12个非常有用的JavaScript技巧
2017/05/17 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
[03:20]次级联赛厮杀超职业 现超级兵对拆世纪大战
2014/10/30 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
Python实现的KMeans聚类算法实例分析
2018/12/29 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python中的colorlog库使用详解
2019/07/05 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
一年级班主任感言
2014/03/08 职场文书
房屋租赁意向书
2014/04/01 职场文书
小学生环保演讲稿
2014/04/25 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
公司承诺书格式范文
2015/04/28 职场文书
放假通知怎么写
2015/08/18 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
pytorch中的 .view()函数的用法介绍
2022/03/17 Python