允许在从 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 中发送特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

在ajax请求后台时在请求标头RequestHeader加token

HTTP面试题

添加正文时在 POST 请求中反应本机网络错误

如何只允许 Paypal 请求我的 notify_url?

静态页接收post请求

get请求和post请求的区别