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 相关文章推荐
jQuery 解析xml文件
Aug 09 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
Aug 12 Javascript
JS获得浏览器版本和操作系统版本的例子
May 13 Javascript
ext前台接收action传过来的json数据示例
Jun 17 Javascript
浅谈jQuery中的checkbox问题
Aug 10 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
JS轮播图中缓动函数的封装
Nov 25 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
Jun 08 Javascript
基于JSONP原理解析(推荐)
Dec 04 Javascript
javascript数组拍平方法总结
Jan 20 Javascript
layUI使用layer.open,在content打开数据表格,获取值并返回的方法
Sep 26 Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 Javascript
利用浏览器全屏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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php实现cc攻击防御和防止快速刷新页面示例
2014/02/13 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
javascript合并表格单元格实例代码
2016/01/03 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
Python functools模块学习总结
2015/05/09 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
pycharm运行scrapy过程图解
2019/11/22 Python
python怎么自定义捕获错误
2020/06/29 Python
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
小学安全汇报材料
2014/08/14 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
初中成绩单评语
2014/12/29 职场文书
东京审判观后感
2015/06/01 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android