我正在運行這個應該將資料發布到我的快遞服務器的功能。單擊按鈕時呼叫該函式。
const fetchData = async () => {
const response = await fetch('http://localhost:1337/api/test', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
message: 'hello world'
}),
})
// const data = await response.json()
const data = await response
console.log(data)
}
這是我的快速配置
const express = require('express')
const cors = require('cors')
const app = express()
app.use(cors())
app.use(express.json())
app.get('/api/test', (req: any, res: any) => {
console.log(req.body)
res.json({ status: 'ok' })
})
app.listen(1337, () => {
console.log('Server started on 1337')
})
問題是,當我單擊按鈕時,我收到 POST 請求的 404 錯誤,console.log(response)結果如下。
Response { type: "cors", url: "http://localhost:1337/api/test", redirected: false, status: 404, ok: false, statusText: "Not Found", headers: Headers, body: ReadableStream, bodyUsed: false }
?
body: ReadableStream { locked: false }
?
bodyUsed: false
?
headers: Headers { }
?
ok: false
?
redirected: false
?
status: 404
?
statusText: "Not Found"
?
type: "cors"
?
url: "http://localhost:1337/api/test"
?
<prototype>: ResponsePrototype { clone: clone(), arrayBuffer: arrayBuffer(), blob: blob(), … }
uj5u.com熱心網友回復:
您正在從客戶端發出 POST 請求,但沒有在服務器端配置 POST 請求處理程式。相反,您有一個 GET 請求處理程式。解決方案是為 POST 請求添加處理程式或將 POST 請求方法轉換為 GET。
uj5u.com熱心網友回復:
您沒有從 fetchData 函式回傳回應。您應該簡單地回傳如下回應。-服務器端也沒有發布請求處理程式。您可以添加為獲取請求撰寫的發布請求處理程式。
const fetchData = async () => {
const response = await fetch('http://localhost:1337/api/test', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
message: 'hello world'
}),
})
// const data = await response.json()
const data = await response
//need to return response as below
return data.json();
}
uj5u.com熱心網友回復:
在后端將 app.get 更改為 app.post
const express = require('express')
const cors = require('cors')
const app = express()
app.use(cors())
app.use(express.json())
// here
app.post('/api/test', (req: any, res: any) => {
console.log(req.body)
res.json({ status: 'ok' })
})
app.listen(1337, () => {
console.log('Server started on 1337')
})
uj5u.com熱心網友回復:
在您尚未實作 POST 端點的服務器中,您僅實作了 GET 端點
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416564.html
標籤:
