我有一个奇怪的问题,我无法理解。下面是调用 REST 终结点的代码:
this.http.get<AllApplicationType[]>(environment.SUDS_API_SERVICE_URL + environment.SUDS_ALL_APPLICATIONS_URL, this.setQueryParams(page, size)).toPromise() ...
其中 setQueryParams 函数如下所示:
setQueryParams(page?: number, size?: number): {} {
const startFrom = page * size + 1;
const params = new HttpParams();
params.set('startFrom', startFrom.toString());
params.set('maxRecords', size.toString());
return params;
}
当请求来到我的后端查询参数时为空,不知何故它们没有被传递,但为什么?这不是正确的方法还是什么?
只是碰巧使用 HttpParams 或 URLSearchParams 对象根本不起作用。在我的情况下,这 2 次的所有尝试都失败了。 唯一的方法是像这样显式构建参数:
setRequestParams(page?: number, size?: number): {} {
const startFrom = page * size + 1;
const params = {'startFrom': startFrom.toString(), 'maxRecords': size.toString()};
const options = {params: params};
return options;
}
好吧,我相信这是Angular HttpClient中的一个错误。