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实现锚点(Anchor)间平滑跳转
Sep 08 Javascript
javascript学习笔记(十二) RegExp类型介绍
Jun 20 Javascript
struts2+jquery组合验证注册用户是否存在
Apr 30 Javascript
JS显示表格内指定行html代码的方法
Mar 31 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
vue2.0.js的多级联动选择器实现方法
Feb 09 Javascript
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 Javascript
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
详解Anyscript开发指南绕过typescript类型检查
Sep 23 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年10月第2期TV动画制作组换血!
2020/03/06 日漫
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
Python格式化css文件的方法
2015/03/10 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
美国折扣网站:jClub
2017/08/07 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
采购内勤岗位职责
2013/12/10 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
基层党建工作简报
2015/07/21 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
win11怎么消除图标小盾牌?win11消除图标小盾牌解决方法
2022/08/05 数码科技