是特定于nginx服务器的CORS错误,或者我应该在我的代码中添加一些东西



我最近首次部署了一个网站。我们有两台服务器,所以说:'https://baseUrl.com'和'https://api.baseUrl.com'来发出请求。

当试图提交一个联系形式的数据上传到mongoDB,但它不是发送到node.js或从node.js它不是通过nodemailer发送到我们的电子邮件地址(我不知道确切),我得到这个错误:访问XMLHttpRequest在'https://api.baseUrl.com'从原点'https://baseUrl.com'已被CORS策略阻止:没有'Access- control - permit - origin '头是存在于请求的资源。

我没有访问nginx服务器,但我被告知,特定的CORS头/s已经设置。

我该怎么办?有什么我可以写在我的代码来解决这个问题,或者它是严格的服务器问题?

例如,我尝试在node.js上添加这段代码,但它没有帮助

app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "YOUR-DOMAIN.TLD"); // update to match the domain you will make the request from
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});

由于CORS错误而没有执行的代码示例:

app.post('/api/*endpoint*',(req,res) => {
upload(req,res,function(err){
if(err){
return res.end("Something went wrong!");
}else{            
let mailOptions = {
from: req.body.email,
to: '*email*',
};
transporter.sendMail(mailOptions, function(err) {
if (err) {
return res(err);
}
})
}
})
});

您可以使用cors express中间件来避免cors的麻烦。示例用法如下。在使用之前,你必须通过输入"npm i ">

来安装npm包。
var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})

app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})

最新更新