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实现ajax提交form表单的方法总结
Mar 03 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
Sep 22 Javascript
JS敏感词过滤代码
Dec 23 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
Mar 07 Javascript
使用vue-cli(vue脚手架)快速搭建项目的方法
May 21 Javascript
使用rollup打包JS的方法步骤
Dec 05 Javascript
pm2发布node配置文件ecosystem.json详解
May 15 Javascript
微信小程序开发摇一摇功能
Nov 22 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 13 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
ThinkPHP模板中数组循环实例
2014/10/30 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
php实现文章评论系统
2019/02/18 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
python的类变量和成员变量用法实例教程
2014/08/25 Python
python循环监控远程端口的方法
2015/03/14 Python
OpenCV 模板匹配
2019/07/10 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
纽约海:Sea New York
2018/11/04 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
会计电算化个人自我评价
2013/11/17 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
大型演出策划方案
2014/05/28 职场文书
正风肃纪剖析材料
2014/09/30 职场文书
自我检讨书怎么写
2015/05/07 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
移除Selenium中window.navigator.webdriver值
2022/06/10 Python