2014-10-01 49 views
4

我使用Angularjs向我的服務器發送get http請求。服務器使用Spring MVC響應休息請求。在這裏我的角度網址構建一個代碼片段:如何在Angularjs中對字符串進行編碼?

var name="myname"; 
var query= "wo?d"; 
var url = "/search/"+query+"/"+name; 

這裏的Spring MVC控制器:

@RequestMapping(value = "/search/{query}/{name}" , method = RequestMethod.GET , produces = MediaType.APPLICATION_JSON_VALUE) 
@ResponseBody 
public List<Data> search() { 

    // search logic 

return data; 
} 

我有當查詢包含問號字符問題(?)。 url被拆分,以便Spring響應: WARN osweb.servlet.PageNotFound - 未找到具有URI的HTTP請求的映射[/ my-server/web/search/wo在名爲'mvc'的DispatcherServlet中'

這是對,因爲問號?引入請求參數的開始。 我試過使用js函數encodeURI(query),但問號字符未編碼。如何在url中編碼問號? 感謝

+0

你們都給出了正確的回答,但是stackoverflow只允許我接受一個。再次感謝你 – Pracede 2014-10-01 12:11:58

回答

6

JavaScript有特殊功能用於此目的encodeURIComponent

encodeURIComponent方法逃脫,除了下面的所有字符: 字母,十進制數字, - _。 ! 〜*'()

encodeURI也不編碼; ,/? : @ & = + $ #字符。

3

爲此使用encodeURIComponent

檢查this小提琴。

var a = "wo?d"; 
alert(encodeURIComponent(a)); 

對於角度特定的外觀this SO回答。

還有一些問題,然後張貼我。

相關問題