Я пытаюсь отправить дату в 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
Я не хочу использовать перехватчик, потому что не хочу влиять на другие маршруты.
Любой совет?
EDIT:
Хорошо, вот что я сейчас делаю:
Компонент:
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'
});
}