如何在React / Node应用上修复POST请求的net :: ERR_EMPTY_RESPONSE

时间:2019-08-03 01:55:58

标签: node.js ajax reactjs api nodemailer

我尝试了其他解决方案,但还是没有运气。我正在使用Nodemailer在我的React / Node应用程序上添加一个简单的联系表单。我正在使用Heroku部署应用程序,目前正在我的本地服务器上进行测试。尽管邮件已传递到分配的邮箱,但在Node.js核心2分钟超时后,我仍然收到错误net::ERR_EMPTY_RESPONSETypeError: Failed to fetch

我已经尝试过1)在客户端同时使用axios和fetch请求,以及2)在服务器文件中添加CORS标头,但结果相同。

app.use(function(req, res, next) {
    console.log('request', req.url, req.body, req.method);
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Request-Method: GET,PUT,POST,DELETE,OPTIONS")
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, x-token");
    if(req.method === 'OPTIONS') {
        res.end();
    } else {
        next();
    }
});

这是从客户端提交的处理程序方法:

handleFormSubmit(e){
        e.preventDefault();
        console.log(this.state);
        console.log('submit clicked');
        const data = {
            "fname": this.state.fname,
            "lname": this.state.lname,
            "email": this.state.email,
            "message": this.state.message
        }

        fetch("http://localhost:3000/api/form", {
            method: "POST",
            headers: {"Content-Type": "application/json",
                      "Access-Control-Allow-Origin": "*"
                     },
            body: JSON.stringify(data)
        })
        .then((res) => {return res.json()})
        .then(res => {
            if(res.ok){
                console.log("request sucess");
                return res.json();
            } else {
                console.log("request fail");
                throw new Error("something went wrong..");
            }
        }).catch(err => {
            console.log(err);
            console.log("error happed");
        })

我遵循了Nodemailer教程,并且路由设置正确。邮件到达邮箱。我希望输出返回成功,但会继续捕获错误,而且我不知道自己在做什么错。我非常感谢您的任何建议。

0 个答案:

没有答案