【问题标题】:Allowing Multiple Cors In Node Express在 Node Express 中允许多个 Cors
【发布时间】:2018-08-25 00:50:32
【问题描述】:

我试图在我的 express api 中允许多个节点与节点,我已经能够让它工作,但目前面临两个问题。

  1. 我无法使用邮递员连接到我的 api,因为我检查了邮递员发送的来源是未定义的。
  2. 我有一个移动应用程序也与服务器通信,问题是在我允许多个特定来源后,该应用程序也无法与服务器通信。

我该如何解决这个问题,因为我无法打开我的 api 服务器以允许来自每个来源的通信。

【问题讨论】:

    标签: node.js express cors


    【解决方案1】:

    你试过Cors for nodejs

    添加依赖:

    $ npm install cors --save
    

    然后将 cors 添加到你的 app.js

    var cors = require('cors')
    var app = express()
    
    app.use(cors())
    

    【讨论】:

      【解决方案2】:

      在生产中试试这个而不是 * 在 Access-Control-Allow-Origin 标头上,对于开发允许任何源都不会成为问题(取决于您的方案)

      app.use(function(req, res, next) {
          res.header("Access-Control-Allow-Origin", "yourdomain.com");
          res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
          next();
      });
      

      【讨论】:

        【解决方案3】:
        app.use(function(req, res, next) {
          res.setHeader('Access-Control-Allow-Origin', '*');
          res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
          res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
         res.setHeader('Access-Control-Expose-Headers','Content-Type,expire');
        next();
        });
        

        在你的服务器上试试这个。如果要传递额外的标头参数,则需要在 res.setHeader('Access-Control-Allow-Headers', 'Content-Type , token'); 中添加这些变量但请记住不要在变量名中使用“-”。

        【讨论】:

          猜你喜欢
          • 2015-01-15
          • 2020-07-02
          • 1970-01-01
          • 2022-01-14
          • 2018-08-17
          • 2020-05-25
          • 2022-09-28
          • 2018-02-22
          相关资源
          最近更新 更多