前端頁面傳送特殊字符串& % 的處理


在一次項目中從端傳遞特殊參數到后端中發現后端獲取不到參數

解決辦法

前端頁面在傳遞參數的地方

var param = "username=" + encodeURI(username);

 

**這里有一個特殊的情況如果是& 后端獲取到的還是空的字符串

這里用了一個字符串替換的步驟進行處理

前端:

if(username.indexOf("&") != -1)  {

  username= username.replace("&", "#amp;");

}


后端:
if (username.indexOf("#amp;") != -1)
            {
                username= username.replace("#amp;", "&");
            }

 

網上還有一種方案都是在后端處理但是好像對於&號 不起作用:

 public static String stringUncode(String param) {
        if (param != null && !param.trim().equals("")) {
            try {
//                param = param.replaceAll("%(?![0-9a-fA-F]{2})", "%25");  //測試%轉義
                param = URLEncoder.encode(param, "utf-8");//轉碼
                param = URLDecoder.decode(param, "UTF-8");//解碼
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        return param;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM