无法在 POST url angular 中传递参数
Not able to pass parameter in POST url angular
您好,我正在尝试在 angular 服务中的 POST 方法 url 中传递参数,以构造一个 URL 从 API 中获取一些数据但是当我在组件文件上调用它时,我收到错误响应。
我哪里做错了?
示例我需要这种类型的 url 才能通过:- https://something/api/v1/map/GetdetailsById?ID=EF-345-RHDJI34-EHI3
在服务中我在做:-
// Http Options
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
};
//POST API to show lists
getOTList(): Observable<any> {
const params = new HttpParams()
.set('ID', 'EF-345-RHDJI34-EHI3');
return this.http
.post<any>(`${environment.Url}` + `${APIs.getList}`,{params}, this.httpOptions)
.pipe(
retry(1),
catchError(this.handleError)
)
}
组件中的 Ang 我在做 :
ngOnInit(){
this.getLists();
}
getLists(){
this.addService.getOTList().subscribe((response:any) => {
if (response.IsSuccess == true) {
console.log(response);
}
else {
console.log("something is wrong.") //<========== getting this message in console
}
});
}
您需要将 params
常量设置为 http.post 调用中的参数对象,如下所示:{params: params}
.
所以你更新后的服务函数应该是这样的:
getOTList(): Observable<any> {
const params = new HttpParams()
.set('ID', 'EF-345-RHDJI34-EHI3');
return this.http.post<any>(`${environment.Url}` + `${APIs.getList}`, {params:params}, this.httpOptions)
.pipe(
retry(1),
catchError(this.handleError)
)
}
我们正在做一个 POST 请求,因此我们需要添加一个 body。您的参数也应该设置为与您的 httpOptions 相同的 object,HttpClient 确实不需要将内容类型设置为 json,它会自动发生,所以我会这样做:
return this.http.post<any>(`${environment.Url}` + `${APIs.getList}`, {}, { params })
注意空 body {}
。因为您甚至没有传递 body,所以这不需要是 POST 请求,只是我想提一下。另外,请不要使用 any
。键入您的数据将在将来帮助您! :)
您好,我正在尝试在 angular 服务中的 POST 方法 url 中传递参数,以构造一个 URL 从 API 中获取一些数据但是当我在组件文件上调用它时,我收到错误响应。
我哪里做错了?
示例我需要这种类型的 url 才能通过:- https://something/api/v1/map/GetdetailsById?ID=EF-345-RHDJI34-EHI3
在服务中我在做:-
// Http Options
httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json'
})
};
//POST API to show lists
getOTList(): Observable<any> {
const params = new HttpParams()
.set('ID', 'EF-345-RHDJI34-EHI3');
return this.http
.post<any>(`${environment.Url}` + `${APIs.getList}`,{params}, this.httpOptions)
.pipe(
retry(1),
catchError(this.handleError)
)
}
组件中的 Ang 我在做 :
ngOnInit(){
this.getLists();
}
getLists(){
this.addService.getOTList().subscribe((response:any) => {
if (response.IsSuccess == true) {
console.log(response);
}
else {
console.log("something is wrong.") //<========== getting this message in console
}
});
}
您需要将 params
常量设置为 http.post 调用中的参数对象,如下所示:{params: params}
.
所以你更新后的服务函数应该是这样的:
getOTList(): Observable<any> {
const params = new HttpParams()
.set('ID', 'EF-345-RHDJI34-EHI3');
return this.http.post<any>(`${environment.Url}` + `${APIs.getList}`, {params:params}, this.httpOptions)
.pipe(
retry(1),
catchError(this.handleError)
)
}
我们正在做一个 POST 请求,因此我们需要添加一个 body。您的参数也应该设置为与您的 httpOptions 相同的 object,HttpClient 确实不需要将内容类型设置为 json,它会自动发生,所以我会这样做:
return this.http.post<any>(`${environment.Url}` + `${APIs.getList}`, {}, { params })
注意空 body {}
。因为您甚至没有传递 body,所以这不需要是 POST 请求,只是我想提一下。另外,请不要使用 any
。键入您的数据将在将来帮助您! :)