![](/img/trans.png)
[英]Axios (React) get request returns 403 from firebase, but works on postman
[英]Axios in React: GET Request works, PUT returns unauthrorized
我對 Axios 有一個非常奇怪的行為。 我想執行 PUT 請求,但收到 401(未經授權)
"PUT /update_todo/62a4cb75d7aa95ab6a70f202 HTTP/1.1" 401 Unauthorized
快速API
@app.put("/update_todo/{id}")
async def update(id: str, user=Depends(manager)):
item = await update_todo(id, user)
return Todo(**item)
反應
const update_todo = (id) => {
axios
.put(`http://127.0.0.1:8000/update_todo/${id}`, {
headers: { Authorization: `Bearer ${token}` },
})
.then(() => {
getAllTodos(token);
});
};
當我將端點更改為get
時,一切正常,錯誤消失。
"GET /update_todo/62a4cb75d7aa95ab6a70f202 HTTP/1.1" 200 OK
在我的后端,我設置了以下內容:
app.add_middleware(
CORSMiddleware,
allow_origins= ["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
這種行為很奇怪,我通常希望每個端點都以相同的方式工作。 有誰知道我在這里做錯了什么?
弄清楚了:
PUT
期望數據作為第二個參數。
const update_todo = (id) => {
axios
.put(
`http://127.0.0.1:8000/update_todo/${id}`,
{},
{
headers: { Authorization: `Bearer ${token}` },
}
)
.then(() => {
getAllTodos(token);
});
};
添加一個空字典作為數據解決了它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.