我创建了一个简单的POST请求表单来提交电子邮件,但是每次运行它时,它就像是失败的GET请求。
我尝试在邮递员中对其进行测试,但收到一条消息,提示“无法获得任何响应”。该表单非常基础,但是我在网上找不到任何描述我的问题和解决方案的信息。
我已经在本地服务器,Heroku服务器和Godaddy共享托管服务器上进行了尝试,
我尝试添加不必要的斜杠,完全更改URl,并删除console.log之外的所有内容。
app.post('/sendEmail', (req, res) => {
console.log('post test');
});
<form method="POST" action="/sendEmail">
<h1>Contact Me</h1>
<hr id="contact-page-hr">
<h4>I am here to serve YOU. Please send your questions my way.</h4>
<h6 id="contact-name-label"><span><input type="text" name="name" placeholder=" Name" value="" id="contact-name-input" required></span></h6>
<h6 id="contact-email-label"><span><input type="email" name="email" placeholder=" Email" id="contact-email-input" required></span></h6>
<h6 id="contact-message-label"></h6>
<textarea name="message" id="contact-message-input" placeholder=" What's on your mind?"></textarea>
<h6 class="sub-heading">(I usually reply within 48 hours)</h6>
<button type="submit" class="send-button" id="contact-page-send">Send</button>
</form>
我希望页面保持原状,但会显示:
“ Safari无法打开页面'localhost:5000 / sendEmail /',因为服务器意外断开了连接...
本质上就像是GET请求
答案 0 :(得分:0)
您的请求处理程序不发送任何响应。因此,浏览器或服务器将最终使连接超时以等待响应。
HTTP请求要求某种响应。您需要res.send()
或res.redirect()
来自请求处理程序的内容。
仅当您发送带有Ajax调用的POST请求时,页面才会保持原样,但如果您执行非JavaScript表单提交,则页面不会停留。浏览器提交的表单期望有一个新的HTML页面或类似302重定向之类的内容作为响应,并且客户端和服务器都在等待您的代码发送该页面,直到其中一个最终超时并错误关闭连接为止。