[英]I can get correct response with Postman but body of the fetch response is empty
我向我的 API 發送帖子請求,其中包含正文中的用戶名和密碼。 當我使用 Postman 執行此操作時,我可以獲得一個正文包含令牌的響應。
但是當我在前面發送相同的請求時,我得到一個空體的響應。
我的心情在這里:
async function login(){
await fetch('/auth/login',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(
{
'userName' : userName,
'password' : password,
}
)
}
).then(
res => {
console.log(res)
localStorage.setItem('Authorization',JSON.stringify(res))
}
).catch(
err => {
console.log("Erorororor: " + JSON.stringify(err))
}
)
}
問題是什么?
我將代碼更改為
.then(res => return res.text()).then(data => console.log(data)).catch(...)
現在我可以得到我想要的結果。
它是由服務器端的一些 header 設置引起的(例如,設置Access-Control-Allow-Origin: *
兩次可能會導致此問題)。 通過調整標頭,您可以修復它。
我遇到了同樣的問題。 它不是由 javascript 代碼引起的,因為瀏覽器本身也沒有獲取正文,但是獲取了標頭和 cookies。
通過展開計時選項卡,您可以看到一條警告,顯示請求未完成!
但是 postman 可以得到正文:
相同的代碼在過去有效。 它最近出來了。 我不確定發生了什么變化,因為有很多事情發生了變化,例如,瀏覽器版本、升級的 nodejs 版本等。
通過調整服務器端的標頭解決了這個問題。
您正在使用郵遞員發送原始數據,但在前端將數據作為 application/json 發送,應該是 text/html。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.