1.如图参数在浏览器中的表现形式,'+'号被转成了空格了。
原因: 经过查找资料,有部分解释如下
html中因为一些非标准的做法,将+等同于空格进行处理 (当Html的表单被提交时,每个表单域都会被Url编码之后才在被发送。由于历史的原因,表单使用的Url编码实现并不符合最新的标准。例如对于空格使用的编码并不是%20,而是+号,如果表单使用的是Post方法提交的,我们可以在HTTP头中看到有一个Content-Type的header,值为application/x-www-form-urlencoded,大部分应用程序均能处理这种非标准实现的Url编码)。
处理方式:
- 通过提前对字符编码再传输参数,如:(jak%2Bpink)这样传入参数,只不过要配合后端处理。
- 改变请求方式,content-type:的值,但这个是json的传参形式
headers: new HttpHeaders({ 'Content-Type': pplication/json' })
- 对于目前所使用的框架(Angular.11)来处理这个问题
angular的处理方式.主要就是解决encoder的参数编码并替换问题