如果成功发送电子邮件,我想显示成功消息。我有一个html表单发布到带有文件的服务器。有没有办法可以将数据从服务器发送到客户端?我会使用express或ajax来处理表单提交,但我无法使用文件上传中的任何一个 - 我可以通过html表单获取上传文件的唯一方法。
客户端
<form enctype="multipart/form-data" action="/email" method="post">
<input type="text" name="name" class="form-control" id="name">
<!--code below uploads file -->
<input type="file"
style="visibility:hidden; width: 1px;"
id='${multipartFilePath}' class="res" name='userFile' onchange="$(this).parent().find('span').html($(this).val().replace('C:\\fakepath\\', ''))" /> <!-- Chrome security returns 'C:\fakepath\' -->
<input class="btn btn-default btn-file" type="button" value="Attach File" onclick="$(this).parent().find('input[type=file]').click();"/>
<button type="submit" class="btn btn-xl">Send Message</button>
</form>
服务器
app.post('/email', function(req, res) {
var toSend = req.files;
res.status(204).end()
sendEmail(req.body, toSend);//email is sent successfully
/***Here I want to send data back to client with either a success or error message text***/
res.send('help');
});
基本上,我需要帮助确定在客户端接受res.send的位置,考虑我用html表单发送我的帖子请求。电子邮件正在正确发送,但在这种情况下我不知道如何将一串文本返回给客户端。
答案 0 :(得分:1)
问题是您要发送status().end()
,然后使用res.send('help')
结束该功能。您无法在end()
上执行res
功能,然后尝试再发送另一个回复。