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 相关文章推荐
事件绑定之小测试  onclick && addEventListener
Jul 31 Javascript
判断及设置浏览器全屏模式
Apr 20 Javascript
php,js,css字符串截取的办法集锦
Sep 26 Javascript
jquery不常用方法汇总
Jul 26 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
Jan 13 Javascript
JavaScript事件代理和委托详解
Apr 08 Javascript
javaScript知识点总结(必看篇)
Jun 10 Javascript
微信小程序实战之登录页面制作(5)
Mar 30 Javascript
Node.js创建HTTP文件服务器的使用示例
May 11 Javascript
vue1.0和vue2.0的watch监听事件写法详解
Sep 11 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 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
php2html php生成静态页函数
2008/12/08 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
微信支付扫码支付php版
2016/07/22 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
Python 模拟登陆的两种实现方法
2017/08/10 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
python的setattr函数实例用法
2020/12/16 Python
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
会计职业生涯规划书
2014/01/13 职场文书
最新创业融资计划书
2014/01/19 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
小学美术兴趣小组活动总结
2014/07/07 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
颐和园导游词
2015/01/30 职场文书
团代会邀请函
2015/02/02 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
Fluentd搭建日志收集服务
2022/09/23 Servers