我正在尝试在URL中发送带有加号(+)的日期。 问题在于+符号被替换为空格。
当我尝试编码日期时,就像这样:
let enforcement_date = this.parserFormatter.format(this.updateDate) + 'T00:00:00.000' + encodeURIComponent('+0000')
它似乎被编码了两次,所以这就是我的最终目的:
url?&enforcement_date=2019-05-15T00:00:00.000%252B0000
所以%2B
来自+
,这是我想要的,但是看起来%
符号也被%25
编码了,我这样做不想。
我知道他们在Angular 5.2.7+中用空格“”代替了加号,但是我想用+
对%2B
进行编码,以使我的URL看起来像这样:
url?&enforcement_date=2019-05-15T00:00:00.000%2B0000
我不想使用拦截器,因为我不想影响其他路线。
有什么建议吗?
编辑:
好的,这就是我目前正在做的事情:
组件:
const req = {
'version': this.version,
'enforcement_date': this.parserFormatter.format(this.updateDate) + 'T00:00:00.000' + encodeURIComponent('+0000')
}
this.service.update(this.itemToUpdate, req).subscribe(
(res: HttpResponse<any>) => {
this.toastr.success('Success')
},
(res: HttpErrorResponse) => {
this.toastr.error(res.message);
}
);
服务:
update(itemToUpdate:string, req:any): Observable<HttpResponse<response>> {
return this.http
.put<response>(`${this.resourceUrl}/${itemToUpdate}/firmware/version`, null, {
params: req,
observe: 'response'
});
}