在过去的24小时里,我一直在尝试使cors正常工作,但是它不起作用。我尝试在应用程序变量app.use(cors())
中以及特定路由(例如router.post('/', cors(),(req, res) => { ... }
)中使用npm包cors,并尝试使用更长的app.use方法,如下所示。
mailer.js [路线]
const express = require('express')
const nodemailer = require('nodemailer')
var mailerTransport = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
auth: {
user: 'user@gmail.com',
pass: 'password'
}
})
const router = express.Router()
router.post('/',(req, res) => {
const mailOptions = {
from: 'email@gmail.com', // sender address
to: 'email2@gmail.com', // list of receivers
subject: req.body.subject, // Subject line
html: `email sent`// plain text body
};
mailerTransport.sendMail(mailOptions, function (err, info) {
if(err)
{
...
}
else
{
...
}
});
})
module.exports = router;
server.js
app.use(bodyParser.json())
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
app.options('*', (req, res) => {
// allowed XHR methods
res.header('Access-Control-Allow-Methods', 'GET, PATCH, PUT, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
res.send();
});
next()
})
app.use("/mailer", mailer)
答案 0 :(得分:1)
首先为您的节点应用程序安装npm install cors。并在server.js中进行以下更改
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
答案 1 :(得分:0)
首先,您必须将cors的npm软件包安装为“ npm install cors --save”。 在app.js文件中声明“ var cors = require(“ cors”);“ 然后使用“ app.use(cors());”。 我认为它对您有用。