Javascript jQuery.post()发送电子邮件,但不发送';t在不刷新服务器的情况下访问.done()/.fail()/.always()
基本上,我只是想在不刷新页面的情况下将表单信息发送到电子邮件中,我一路做到了这一点。这里的问题是,即使它正确地发送电子邮件,它也不会清除表单,因为$.post()从未到达.done()或.fail()或.always()。虽然我注意到,当我使用nodemon时,当我更改代码并保存它时,它会刷新服务器,然后进入.fail()和.always(),但不会进入.done() 你们知道我应该怎么做才能使$.post()正确完成/失败/总是,拜托 代码如下所示: HTML 节点的东西在这里Javascript jQuery.post()发送电子邮件,但不发送';t在不刷新服务器的情况下访问.done()/.fail()/.always(),javascript,jquery,express,nodemailer,Javascript,Jquery,Express,Nodemailer,基本上,我只是想在不刷新页面的情况下将表单信息发送到电子邮件中,我一路做到了这一点。这里的问题是,即使它正确地发送电子邮件,它也不会清除表单,因为$.post()从未到达.done()或.fail()或.always()。虽然我注意到,当我使用nodemon时,当我更改代码并保存它时,它会刷新服务器,然后进入.fail()和.always(),但不会进入.done() 你们知道我应该怎么做才能使$.post()正确完成/失败/总是,拜托 代码如下所示: HTML 节点的东西在这里 app.pos
app.post("/trial-submission", function(req, res){
const data = req.body;
let transporter = nodemailer.createTransport({
service: "mail",
auth: {
user: "send@mail.com",
pass: "password"
}
});
let mailOptions = {
from:'send@mail.com',
to:'receive@mail.com',
subject: 'testing',
html:`
Company: ${data.company}<br>
Contact person: ${data.person}<br>
Phone: ${data.phone}<br>
E-mail: ${data.email}<br>
Note: ${data.note}
`
};
transporter.sendMail(mailOptions, function(err, data){
if(err){
console.log('Error Occurs', err);
} else {
console.log('Email Sent!');
}
});
});
app.post(“/试提交”,功能(请求、回复){
常量数据=请求主体;
让transporter=nodeEmailer.createTransport({
服务:“邮件”,
认证:{
用户:“send@mail.com",
通行证:“密码”
}
});
让邮件选项={
发件人:'send@mail.com',
致:'receive@mail.com',
主题:"测试",,
html:`
公司:${data.Company}
联系人:${data.person}
电话:${data.Phone}
电子邮件:${data.email}
注意:${data.Note}
`
};
transporter.sendMail(邮件选项、函数(错误、数据){
如果(错误){
log('发生错误',err);
}否则{
log('Email Sent!');
}
});
});
您需要在sendMail呼叫中发送响应,否则您的浏览器将无法收到任何信息。试试这个:
transporter.sendMail(mailOptions, function(err, data){
if(err){
console.log('Error Occurs', err);
res.sendStatus(400);
} else {
console.log('Email Sent!');
res.sendStatus(204);
}
});
400是一个简单的“错误请求”,204是“成功/无内容”。您可以进一步修改这些内容,但目前客户端将接收响应,以便继续。您需要在sendMail呼叫中发送响应,否则您的浏览器将无法接收任何内容。试试这个:
transporter.sendMail(mailOptions, function(err, data){
if(err){
console.log('Error Occurs', err);
res.sendStatus(400);
} else {
console.log('Email Sent!');
res.sendStatus(204);
}
});
400是一个简单的“错误请求”,204是“成功/无内容”。您可以进一步修改这些内容,但目前客户端将收到响应,因此您可以继续
transporter.sendMail(mailOptions, function(err, data){
if(err){
console.log('Error Occurs', err);
res.sendStatus(400);
} else {
console.log('Email Sent!');
res.sendStatus(204);
}
});