手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >js中传递特殊字符(+,&)的方法
js中传递特殊字符(+,&)的方法
摘要:背景:今天在做一个任务时,用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长)。查了...

背景:

今天在做一个任务时,用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 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

【js中传递特殊字符(+,&)的方法】相关文章:

Javascript监视变量变化的方法

jQuery实现不断闪烁文字的方法

JS/Jquery判断对象为空的方法

js实现鼠标划过给div加透明度的方法

javascript实现行拖动的方法

AngularJs中route的使用方法和配置

Javascript动态创建表格及删除行列的方法

js+html5实现canvas绘制简单矩形的方法

js实现两点之间画线的方法

js实现鼠标移到链接文字弹出一个提示层的方法

精品推荐
分类导航