【问题标题】:Whatever I try cors just doesn't seem to work in production无论我尝试什么 cors 似乎都无法在生产中使用
【发布时间】:2022-12-03 15:00:40
【问题描述】:

嗨,我正在使用 cors npm 库将后端与前端连接起来,我之前使用 fastApi 中间件构建了后端,并且工作得非常好,但是对于 expressjs,它似乎根本无法在生产中工作,仅在开发中。我一直收到这个错误

Access to XMLHttpRequest at 'https://invoiceappnodejs.herokuapp.com/send_mail' from origin
'https://www.omillerwieldinginvoice.com' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是代码

const cors = require('cors');

require('dotenv').config()
const express = require('express');

const nodemailer = require('nodemailer');
const app = express();



app.use(express.json());
app.options('/send_mail', cors())
app.use(cors({
    allowedHeaders:["*"],
    exposedHeaders: ['*']
    origins:'https://www.omillerwieldinginvoice.com/',
    headers:'*',
    preflightContinue: false,
    methods:"GET, POST, PUT, PATCH, POST, DELETE"
}))

【问题讨论】:

  • 它似乎不起作用“ 不是一个特别描述性的问题陈述。你能详细说明一下吗?你期望发生什么?相反发生了什么?你尝试了什么,你在哪里遇到困难?请参阅How to Ask
  • origins 不是 CORS 选项对象的属性;你想使用origin(单数)。另外,https://www.omillerwieldinginvoice.com/不是Web origin;删除尾随的斜线。
  • 即使有 origin:"*" 它仍然失败,我添加了你所有的建议

标签: node.js cors


【解决方案1】:

不同的浏览器请求不同喜欢:Mozilla:http://www.example.com 和 chrome:http://example.com。你可以这样使用:

cors({
    origin: ["http://example.com","http://www.example.com"],
    optionsSuccessStatus: 200
})

【讨论】:

    【解决方案2】:

    由于您明确将 https://www.omillerwieldinginvoice.com/ 作为来源,因此对 https://invoiceappnodejs.herokuapp.com/send_mail 的请求将不起作用。因此,您需要将正确的原点添加到您的原点。

    也不要忘记在你的根之前初始化 CORS。所以顺序应该是:

    app.use(cors({});
    app.use(express.json());
    app.options('/send_mail', cors());
    

    【讨论】:

    • 嘿,感谢您的回复,我什至尝试过“*”接受所有来源,但它仍然对我不起作用
    • @ToTheStarsInvesting 也请分享您拨打电话的方式。
    • 好的,这里是 axios .post("invoiceappnodejs.herokuapp.com/send_mail", mailBody) .then((response) => { console.log(response); }) .catch((error) => { console.log(error); this.setState({ err: true }); });
    猜你喜欢
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 2021-07-29
    • 2020-10-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多