[英]PUT call to RESTapi giving error "SyntaxError: Unexpected token B in JSON at position 0"
我正在使用 React、Typescript 和自制的 RESTapi。
我試圖在 React 中從我的客戶端向我的 api 發出 PUT 請求,但我不斷收到錯誤“SyntaxError: Unexpected token B in JSON at Z4757FE07FD492A360EA6A760D6” 對 api 的 PUT 調用不包含正文,也不應該因為我在 API 中創建請求的方式。 我已經確認 fetch 中的 url 是正確的,並且當直接在我的 API 中進行測試時,API 調用工作得非常好。 因此,問題似乎與我在客戶端進行 PUT 調用的方式有關
以下是我的客戶打來的 PUT 電話。
提前非常感謝!
function putProductInBasket(id: number){
fetch("http://localhost:3005/velocishop/customers/" + localStorage.uuid + "/baskets/" + localStorage.uuid + "/products/" + id, {
method: "PUT",
headers: {
Accept: "application/json",
"Content-Type": "application/json"
},
})
.then(response => {
if (response.ok)
return Promise.resolve ({ status:response.statusText})
else
return Promise.reject ({ status:response.statusText})
}
)
.catch(err => console.log(err))
}
您需要首先使用res.json()
將來自 fetch 的響應轉換為 json 類似這樣的東西
fetch('/data.json')
.then(response => response.json()) // Add this .then block before your first .then block
.then(data => {
console.log(data)
})
.catch(err => ...)
如果您設置Content-Type: application/json
正文,則不發送正文無效,因為期望您實際發送 JSON。
刪除此 header 可能會解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.