我使用Angularjs向我的服务器发送get http请求.服务器使用Spring MVC响应rest请求.这是我的角网址建筑上的代码片段:
var name="myname";
var query= "wo?d";
var url = "/search/"+query+"/"+name;
这里是Spring MVC Controller:
@RequestMapping( value = "/search/{query}/{name}",method = RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE )
@ResponseBody
public List
当查询包含问号字符(?)时,我遇到了问题.该URL被拆分,以便Spring响应:
警告o.s.web.servlet.PageNotFound – 找不到带有URI的HTTP请求的映射[/ my-server / web / search / wo在DispatcherServlet中,名称为’mvc’
这是正确的,因为问号?介绍请求参数的开头.
我试过使用js函数encodeURI(查询),但问号字符没有编码.如何在url中编码问号?
谢谢
最佳答案
Javascript为此目的具有特殊功能encodeURIComponent
encodeURIComponent escapes all characters except the following:
alphabetic,decimal digits,– _ . ! ~ * ‘ ( )
而encodeURI也不编码;,/? :@& = $#个字符.