如何在Angularjs中编码一个字符串?
Posted
技术标签:
【中文标题】如何在Angularjs中编码一个字符串?【英文标题】:How to encode a String in Angularjs? 【发布时间】:2014-11-26 04:16:24 【问题描述】:我使用 Angularjs 向我的服务器发送一个 get http 请求。服务器使用 Spring MVC 响应休息请求。这是我的 Angular url 构建上的 sn-p 代码:
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 o.s.web.servlet.PageNotFound - 在 DispatcherServlet 中找不到带有 URI [/my-server/web/search/wo 的 HTTP 请求的映射,名称为“mvc”
这是正确的,因为问号?介绍请求参数的开头。
我尝试使用 js 函数 encodeURI(query)
但问号字符未编码。如何在 url 中编码问号?
谢谢
【问题讨论】:
你们都给出了正确的回应,但 *** 只允许我接受一个。再次感谢您 【参考方案1】:javascript 具有为此目的的特殊功能encodeURIComponent
encodeURIComponent 转义除以下字符之外的所有字符: 字母,十进制数字, - _ 。 ! ~ * ' ( )
虽然encodeURI
也不编码; , / ? : @ & = + $ #
字符。
【讨论】:
【参考方案2】:为此使用encodeURIComponent
。
检查this小提琴。
var a = "wo?d";
alert(encodeURIComponent(a));
对于特定角度的外观this SO 答案。
还有一些问题,然后给我发帖。
【讨论】:
以上是关于如何在Angularjs中编码一个字符串?的主要内容,如果未能解决你的问题,请参考以下文章