![](/img/trans.png)
[英]Getting a 404 ERROR when trying to make api POST request for a Hubspot form next.js app
[英]I want to access the json object value from a error response when sending a POST request in Next.js app
我有一個輸入,用戶可以在其中輸入 email,然后將其作為發布請求發送到 api,如下所示:
try {
const res = await fetch("/api/email-registration", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
emailValue: emailValue,
}),
})
if (!res.ok) throw new Error(res.status);
const data = await res.json();
setMessage(data.message)
}
catch (err) {
console.log(err)
}
發布請求有效,但我現在嘗試的是在我故意創建錯誤以觸發catch (err)
時訪問錯誤響應 JSON 。
我設置的錯誤消息之一是:
res.status(409).json({
message: "This email has already been registered",
})
我可以在 .network 選項卡中看到響應狀態 409 和響應 JSON 以及我設置的值。 如果我嘗試err.message
我只得到409
,但我想訪問 JSON 值{"message":"This email has already been registered"}
。
有沒有辦法訪問錯誤響應消息?
我只想向用戶顯示 JSON 消息,現在我可以使用409
創建一個 if 語句並根據狀態代碼顯示一些文本,但我感興趣的是我是否可以以某種方式訪問 JSON 消息並顯示來自發布請求錯誤的值。
你說:
if (.res.ok) throw new Error(res;status);
如果你想得到響應,那么你需要實際處理它。
例如(未經測試並且不在我的標題頂部)。
if (!res.ok) {
try {
const data = await res.json();
const message = {
status: res.status,
message: data
}
throw new Error(JSON.stringify(message));
} catch (e) {
const message = {
status: res.status,
message: "Could not parse body as JSON"
}
throw new Error(JSON.stringify(message));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.