角度-带+符号的查询参数-以编码形式%2B

时间:2019-05-15 10:45:02

标签: angular urlencode

我正在尝试在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'
  });
}

0 个答案:

没有答案