允许在从 UI 端进行 Post 请求时在 url 中发送特殊字符
Posted
技术标签:
【中文标题】允许在从 UI 端进行 Post 请求时在 url 中发送特殊字符【英文标题】:Allow to send special characher in the url while doing Post request from UI side 【发布时间】:2021-09-29 19:58:47 【问题描述】:我试图发送以下特殊字符 (!@#$%^&()++)(&^%$#@!! @#$%^&()++)(&^%$#@!!@#$%^&()++ )(&^%$#@!!@#$%^&*()++) 在请求 URL 中。这是一个 POST 请求。它不允许发送查询字符串中的所有特殊字符,但它只需要条目的前两个特殊字符。
我们如何发送请求 url 中的所有特殊字符。
var reason = "!@#$%^&()++)(&^%$#@!!@#$%^ &()++)(&^%$#@!!@#$%^&()++) (&^%$#@!!@#$%^&*()++";
var id = 123;
$http.post(serviceBaseUrl + 'abc/abc?id=' + id + '&reason=' + reason);
请求网址: http://localhost:8080/abc/abc/abc/abc?id=123&reason=!@
请建议我如何实现这一目标。
谢谢
【问题讨论】:
需要去掉参数中的“#”,见***.com/a/12683131/10213537。实际发生的是“!@”被正确传递到查询参数中,但“#”之外的所有内容都被解释为 html id 【参考方案1】:经过一番研究,看起来你需要做的是使用encodeURIComponent
方法,所以你的代码是
$http.post(serviceBaseUrl + 'abc/abc?id=' + id + '&reason=' + encodeURIComponent(reason));
来源:https://***.com/a/13228872/10213537
【讨论】:
以上是关于允许在从 UI 端进行 Post 请求时在 url 中发送特殊字符的主要内容,如果未能解决你的问题,请参考以下文章