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 相关文章推荐
checkbox 复选框不能为空
Jul 11 Javascript
基于jquery的表格排序
Sep 11 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
Mar 20 Javascript
基于JavaScript 类的使用详解
May 07 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
Sep 09 Javascript
最全的Javascript编码规范(推荐)
Jun 22 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 Javascript
vue+Element-ui实现登录注册表单
Nov 17 Javascript
小程序实现tab标签页
Nov 16 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
文件系统基本操作类
2006/11/23 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
php生成圆角图片的方法
2015/04/07 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js获取php变量的实现代码
2013/08/10 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
Element-UI Table组件上添加列拖拽效果实现方法
2018/04/14 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
python占位符输入方式实例
2019/05/27 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
十岁生日同学答谢词
2014/01/19 职场文书
查摆剖析材料范文
2014/09/30 职场文书
护士辞职信怎么写
2015/02/27 职场文书
国际贸易实训总结
2015/08/03 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
python_tkinter事件类型详情
2022/03/20 Python
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL