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 相关文章推荐
使用onbeforeunload属性后的副作用
Mar 08 Javascript
一个简单的jQuery插件制作 学习过程及实例
Apr 25 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
webpack热模块替换(HMR)/热更新的方法
Apr 05 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
js实现动态增加文件域表单功能
Oct 22 Javascript
vue ssr 实现方式(学习笔记)
Jan 18 Javascript
js实现图片上传即时显示效果
Sep 30 Javascript
JavaScript 禁止用户保存图片的实现代码
Apr 28 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 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 星际争霸
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
jQuery 技巧小结
2010/04/02 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
详解vue组件基础
2018/05/04 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
js/jquery遍历对象和数组的方法分析【forEach,map与each方法】
2019/02/27 jQuery
详解vue中使用微信jssdk
2019/04/19 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
python日志logging模块使用方法分析
2019/05/23 Python
Apache部署Django项目图文详解
2019/07/30 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
企业安全标语
2014/06/07 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
大客户经理岗位职责
2015/04/09 职场文书
主持稿开场白
2015/06/01 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
Java 异步任务计算FutureTask
2022/04/28 Java/Android