今天遇到一個問題,URL中的加号傳到背景之後變成了空格
BNn+Y6xKvmejeJmu9sS2OnRJwYhHtYXScG2ol17EUhg1oeSFE5btrT4Eh04QiwIf變成了BNn Y6xKvmejeJmu9sS2OnRJwYhHtYXScG2ol17EUhg1oeSFE5btrT4Eh04QiwIf
原因:URL中的+号,通過 GET方式傳值的時候,+号會被浏覽器處理為空,需要轉換為%2B
解決方法:
一.使用URLEncoder.encode進行編碼
注:我在背景用URLDecoder.decode進行解碼之後發現+号依然是空格,原因是我在前台編碼了一次,但是在伺服器被URLDecoder.decode解碼了兩次,應用伺服器一次(jetty、tomcat)、背景一次,導緻加号會變為空格。解決的辦法:1.做兩次編碼
URLEncoder.encode(URLEncoder.encode(token, "UTF-8"), "UTF-8"),一次應用伺服器去解碼,一次背景取解碼。2.背景不解碼
二.使用.replace(/\+/g,'%2B')