我是靠谱客的博主 个性鞋垫,最近开发中收集的这篇文章主要介绍js中传递特殊字符(+,&)的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

背景:

今天在做一个任务时,用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中传递特殊字符(+,&)的方法的全部内容,希望文章能够帮你解决js中传递特殊字符(+,&)的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(139)

评论列表共有 0 条评论

立即
投稿
返回
顶部