HTTPparams 422(无法处理的实体)和 FastAPI 在 Angular 中出错
Error in Angular with HTTPparams 422 (Unprocessable Entity) and FastAPI
我在后端有这个url,需要像参数一样传递c1,c1只是一个例子,
此方法启用或禁用用户并返回“ok”
http://127.0.0.1:8000/admin/enable_disable_account?name=c1
值取自按钮
<div *ngFor='let userInfo of users'>
<ul class="list-group">
<li class="list-group-item">username -> {{userInfo["username"]}}</li>
<li class="list-group-item">email -> {{userInfo["email"]}}</li>
<li class="list-group-item">enable/disable -> {{userInfo["enable"]}}</li>
</ul>
<button class="btn btn-primary" (click)="setValor(userInfo['username'])">Enable/Disable</button>
</div>
组件管理点击事件的方法
setValor(username): void {
console.log("click")
this.adminServ.updateStateUser(username)
.subscribe(data => {
console.log(data)
},
err => {
console.log("error")
console.error(err)
})
}
以及服务中的方法
public updateStateUser(username): Observable<any> {
let params = new HttpParams()
.append('name', username)
return this.http.post('http://127.0.0.1:8000/admin/enable_disable_account', params)
}
我有这个错误,问题是什么?
后台的方法我照搬过来,不知道是否重要,发现问题,
使用 FastAPI
完成
@router.post("/enable_disable_account")
async def enable_disable_account(name: str, current_user: User = Security(get_current_user, scopes=["admin"])):
result = await admin_db.enable_disable_account(name)
if result:
return JSONResponse(status_code=status.HTTP_200_OK,
content='ok')
this.http.post('http://127.0.0.1:8000/admin/enable_disable_account', params)
此行不正确。
Angular
http客户端post
方法第二个参数是body
,第三个参数是options
.
当你想设置query
并传递params
时你需要作为第三个参数传递。而且您还必须作为对象发送,而不仅仅是 HttpParams
。
Angular Http Client API reference
this.http.post('http://127.0.0.1:8000/admin/enable_disable_account',null ,{
params: params
})
我在后端有这个url,需要像参数一样传递c1,c1只是一个例子, 此方法启用或禁用用户并返回“ok”
http://127.0.0.1:8000/admin/enable_disable_account?name=c1
值取自按钮
<div *ngFor='let userInfo of users'>
<ul class="list-group">
<li class="list-group-item">username -> {{userInfo["username"]}}</li>
<li class="list-group-item">email -> {{userInfo["email"]}}</li>
<li class="list-group-item">enable/disable -> {{userInfo["enable"]}}</li>
</ul>
<button class="btn btn-primary" (click)="setValor(userInfo['username'])">Enable/Disable</button>
</div>
组件管理点击事件的方法
setValor(username): void {
console.log("click")
this.adminServ.updateStateUser(username)
.subscribe(data => {
console.log(data)
},
err => {
console.log("error")
console.error(err)
})
}
以及服务中的方法
public updateStateUser(username): Observable<any> {
let params = new HttpParams()
.append('name', username)
return this.http.post('http://127.0.0.1:8000/admin/enable_disable_account', params)
}
我有这个错误,问题是什么?
后台的方法我照搬过来,不知道是否重要,发现问题, 使用 FastAPI
完成@router.post("/enable_disable_account")
async def enable_disable_account(name: str, current_user: User = Security(get_current_user, scopes=["admin"])):
result = await admin_db.enable_disable_account(name)
if result:
return JSONResponse(status_code=status.HTTP_200_OK,
content='ok')
this.http.post('http://127.0.0.1:8000/admin/enable_disable_account', params)
此行不正确。
Angular
http客户端post
方法第二个参数是body
,第三个参数是options
.
当你想设置query
并传递params
时你需要作为第三个参数传递。而且您还必须作为对象发送,而不仅仅是 HttpParams
。
Angular Http Client API reference
this.http.post('http://127.0.0.1:8000/admin/enable_disable_account',null ,{
params: params
})