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 相关文章推荐
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
Feb 23 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
Oct 13 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
Oct 23 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
Oct 25 Javascript
Angular4 反向代理Details实践
May 30 Javascript
jquery使用FormData实现异步上传文件
Oct 25 jQuery
vue-router命名视图的使用讲解
Jan 19 Javascript
vue获取时间戳转换为日期格式代码实例
Apr 17 Javascript
jquery-ui 进度条功能示例【测试可用】
Jul 25 jQuery
利用浏览器全屏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
实用函数8
2007/11/08 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
php判断电子邮件是否正确方法
2018/12/04 PHP
PHP getName()函数讲解
2019/02/03 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
javascript调试说明
2010/06/07 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
使用AngularJS创建单页应用的编程指引
2015/06/19 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
如何在VUE中使用vue-awesome-swiper
2021/01/04 Vue.js
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
python文件名和文件路径操作实例
2017/09/29 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
python 怎样进行内存管理
2020/11/10 Python
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
德国户外商店:eXXpozed
2020/07/25 全球购物
会计专业推荐信
2013/10/29 职场文书
会计应聘求职信范文
2013/12/17 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
使用CSS实现小三角边框原理解析
2021/11/07 HTML / CSS