如何在 Angular 中的 HTTP post 请求中传递 url 中的查询参数
How to pass query params in url in a HTTP post request in Angular
这就是我在 Postman 中将参数传递给我的 http post 请求的方式。而且它的状态是ok 200。
我正在尝试通过 angular 代码来完成此操作。
getInfo() {
const params = [];
params.push({code: 'checkinFrom', name: '2019-02-01'});
params.push({code: 'checkinTo', name: '2019-10-01'});
params.push({code: 'room_type_ids', name: [2]});
console.log(params);
return this.service.post(environment.url + 'v1/transactions/demand/price-info', params);
}
这是我在服务 class 中的 post 方法。
post(path, body): Observable<any> {
return this.http
.post(
path,
body,
{
headers: Service.setHeaders([])
}
)
.pipe(
catchError(error => {
throw error;
}),
map((res: Response) => res)
);
}
但是在 Angular 前端,当我尝试发送参数时,它给出了一个错误,如 422(不可处理的实体)。我想如何传递参数?
你可以尝试像 headers 那样把它们放在 post 方法中,它会像这样
post(path, body): Observable<any> {
return this.http
.post(
path,
body,
{
headers: Service.setHeaders([]),
params: {
param1: param1Value,
param2: param2Value,
...
},
}
)
.pipe(
catchError(error => {
throw error;
}),
map((res: Response) => res)
);
}
如果您想将参数用作数组,则必须将 object 的数组转换为 object 的 object 的数组。
访问 How do I convert array of Objects into one Object in JavaScript?
希望对您有所帮助
这就是我在 Postman 中将参数传递给我的 http post 请求的方式。而且它的状态是ok 200。
我正在尝试通过 angular 代码来完成此操作。
getInfo() {
const params = [];
params.push({code: 'checkinFrom', name: '2019-02-01'});
params.push({code: 'checkinTo', name: '2019-10-01'});
params.push({code: 'room_type_ids', name: [2]});
console.log(params);
return this.service.post(environment.url + 'v1/transactions/demand/price-info', params);
}
这是我在服务 class 中的 post 方法。
post(path, body): Observable<any> {
return this.http
.post(
path,
body,
{
headers: Service.setHeaders([])
}
)
.pipe(
catchError(error => {
throw error;
}),
map((res: Response) => res)
);
}
但是在 Angular 前端,当我尝试发送参数时,它给出了一个错误,如 422(不可处理的实体)。我想如何传递参数?
你可以尝试像 headers 那样把它们放在 post 方法中,它会像这样
post(path, body): Observable<any> {
return this.http
.post(
path,
body,
{
headers: Service.setHeaders([]),
params: {
param1: param1Value,
param2: param2Value,
...
},
}
)
.pipe(
catchError(error => {
throw error;
}),
map((res: Response) => res)
);
}
如果您想将参数用作数组,则必须将 object 的数组转换为 object 的 object 的数组。 访问 How do I convert array of Objects into one Object in JavaScript?
希望对您有所帮助