> 웹 프론트엔드 > JS 튜토리얼 > js_javascript 스킬에 특수문자(,&)를 전달하는 방법

js_javascript 스킬에 특수문자(,&)를 전달하는 방법

WBOY
풀어 주다: 2016-05-16 17:03:40
원래의
1160명이 탐색했습니다.

背景:

今天在做一个任务时,用Jquery的Ajax传递一长串字符时,在后台的验证一直不成功,纠结时我了(那个字符串是随机生成的,特长)。查了一上午,原来是我生成的字符串中有+号,而在js传递的时候,会理解为是连接字符用的,到了后台就将+号自动变为空格了,所以后台的字符串和前台生成的已经不一样了。

原因:

js后自动解析特殊字符,如+号为连接符,解析为空格,&为变量连接符,服务器端接受数据时&以后的数据不显示等等。

解决办法:

1、将字符放到form中,然后用js提交form表单到服务器。

2、将字符中的特殊字符替换成十六进制的字符,一些特殊字符与十六进制的对应关系:

 

+ 空格 / ? % & = #
+ / ? % & &3D #

str = str.replace(/ /g,"+"); 숫자를 16진수로 바꾸기

3. 가장 간단한 방법은 encodeURIComponent() 함수를 사용하는 것입니다. ​

 이 방법은 ASCII 문자 및 숫자를 인코딩하지 않으며 다음 ASCII 구두점 문자도 인코딩하지 않습니다: - _ ~ * ' ( ) .

기타 문자(예: URI 구성 요소를 구분하는 데 사용되는 문장 부호인 ::/?:@&= $,#)는 하나 이상의 16진수 이스케이프 시퀀스로 대체됩니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿