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 相关文章推荐
Javascript-Mozilla和IE中的一个函数直接量的问题
Jan 09 Javascript
JavaScript框架(iframe)操作总结
Apr 16 Javascript
javascript元素动态创建实现方法
May 13 Javascript
javascript中sort() 方法使用详解
Aug 30 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
Angular17之Angular自定义指令详解
Jan 21 Javascript
JS数组求和的常用方法总结【5种方法】
Jan 14 Javascript
使用react context 实现vue插槽slot功能
Jul 18 Javascript
layui导出所有数据的例子
Sep 10 Javascript
JavaScript单线程和任务队列原理解析
Feb 04 Javascript
JS常见错误(Error)及处理方案详解
Jul 02 Javascript
使用node-media-server搭建一个简易的流媒体服务器
Jan 20 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
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php文件系统处理方法小结
2016/05/23 PHP
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
简单谈谈js的数据类型
2017/09/25 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
js+canvas实现验证码功能
2020/09/21 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
Python调用C++程序的方法详解
2017/01/24 Python
Python 登录网站详解及实例
2017/04/11 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python操作yaml说明
2020/04/08 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
土木工程个人自荐信范文
2013/11/30 职场文书
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
个人汇报材料范文
2014/12/30 职场文书