我有一個與 SQL 資料庫通信的基本反應應用程式,并有一個使用 Flask 運行的演示 API。我知道我的 API 適用于 Postman 的手動確認。
我只是想通過經過驗證的 API 將資料發布到我的資料庫。但是,我遇到了基于我的 post 方法中的標題的 fetch 問題。以下是我當前的代碼:
const request = new Request("http://155.98.25.80:8000/user",
{method: 'POST',
headers:{'Content-Type': 'application/json', 'Access-Control-Allow-Origin': "http://localhost:3000/",
'Accept':'application/json'},
body: user_data,
mode:'cors',
});
console.log(request)
fetch(request)
.then(response => {
if (response.status === 200) {
return response.json();
}
else {
throw new Error('Something went wrong on api server!');
}
})
.then(response => {
console.debug(response);
// ...
}).catch(error => {
console.error(error);
});
}
這是一個非常標準的 POST 請求,在單擊按鈕時觸發。當我發出這個請求時,我可以看到 API 回傳一個 200 代碼,這意味著它通過了資料庫。但是,在我的瀏覽器 (Chrome) 控制臺中,我收到以下錯誤:TypeError: Failed to fetch。
我很迷失在這里。我知道我的發布請求正在通過,但似乎回傳失敗并沒有回應。我已經閱讀了許多其他有關此問題的帖子,但我不確定我的應用程式出了什么問題。任何幫助都會很棒。
uj5u.com熱心網友回復:
幾年前我遇到了這個令人沮喪的問題,我有一個答案給你。您的痛苦來源可能是
OPTIONS呼叫回傳標Access-Control頭

然后POST就可以撥打電話了

筆記
Chrome 會自行進行預檢,您無需添加任何額外的反應代碼來實作這一點。
TL;博士
OPTIONS http://155.98.25.80:8000/user在 Flask API 中創建一個新的端點 ( ) 并回傳
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Methods: POST
Access-Control-Allow-Origin: *
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/426771.html
