js中傳遞特殊字符(+,&)的方法
背景:
今天在做一個任務時,用Jquery的Ajax傳遞一長串字符時,在后臺的驗證一直不成功,糾結時我了(那個字符串是隨機生成的,特長)。查了一上午,原來是我生成的字符串中有+號,而在js傳遞的時候,會理解為是連接字符用的,到了后臺就將+號自動變?yōu)榭崭窳?,所以后臺的字符串和前臺生成的已經不一樣了。
原因:
js后自動解析特殊字符,如+號為連接符,解析為空格,&為變量連接符,服務器端接受數據時&以后的數據不顯示等等。
解決辦法:
1、將字符放到form中,然后用js提交form表單到服務器。
2、將字符中的特殊字符替換成十六進制的字符,一些特殊字符與十六進制的對應關系:
| + | 空格 | / | ? | % | & | = | # |
| %2B | %20 | %2F | %3F | %25 | %26 | &3D | %23 |
str = str.replace(/\+/g,"%2B"); 將+號替換為十六進制
3、最簡單的一種,使用encodeURIComponent()函數?! ?/P>
該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼: - _ . ! ~ * ' ( ) 。
其他字符(比如 :;/?:@&=+$,# 這些用于分隔 URI 組件的標點符號),都是由一個或多個十六進制的轉義序列替換的。
相關文章
EasyUi中的Combogrid 實現分頁和動態(tài)搜索遠程數據
jquery easyui中的combogrid比較特殊,算是combo和grid的組合,combogrid結合一個可編輯的文本框和下拉數據網格面板,可以讓用戶迅速找到并選擇,又可以進行搜索,展示與當前輸入的字符相匹配的數據。下面給大家介紹EasyUi中的Combogrid 實現分頁和動態(tài)搜索遠程數據2016-04-04

