React 页面重定向而不发送 POST 请求?

时间:2021-06-26 06:43:54

标签: node.js reactjs express

我正在尝试通过我的 React 应用程序将表单发送到我的 Node 服务器,然后重定向到一个成功页面。我正在通过 React Router 运行我的页面,所以我正在尝试使用 history.push() 进行重定向。它有效,但问题是页面重定向而不发送任何数据。我在两者之间设置了代理,所以不应该是这样。我还尝试将表单的操作属性设置为“http://localhost:4000”,但没有奏效。我是 POST 请求的新手,所以我真的不知道问题是什么。这是我的代码:

表格:

<form onSubmit={() => this.props.history.push('/success')} action="/application" method="POST" encType="multipart/form-data">

后端:

const express = require('express')
const sendMail = require('./mail')
const multer = require('multer')
const upload = multer({dest: './uploads/'})
const app = express()
const PORT = process.env.PORT || 4000
const cpUpload = upload.fields([{name: 'essay', maxCount: 1}, {name: 'recLetter1', maxCount: 1}, {name: 'recLetter2', maxCount: 1}])
const path = require('path')
const cors = require('cors')

app.use(express.urlencoded({
    extended: false
}))
app.use(express.json())
app.use(cors())

app.use(express.static(path.join(__dirname, 'client/build')))

app.get('/*', (req, res) => {
    res.sendFile(path.join(__dirname, 'client/build/index.html'))
})

app.post('/application', cpUpload, (req, res) => {
    sendMail(req.files['essay'][0], req.files['recLetter1'][0], req.files['recLetter2'][0], req.body, (err) => {
        if(err) {
            res.status(500).json({message: 'Internal Error'})
        }
    })
})

app.listen(PORT, () => {
    console.log(`Listening on port ${PORT}`)
})

0 个答案:

没有答案