当前位置: 首页 > 知识库问答 >
问题:

简单nodejs服务器未定义CORS原点

呼延景同
2023-03-14

我有一个非常简单的nodejs服务器,但由于某种原因,使用“cors”包似乎无法识别请求的来源。

下面是我的nodejs服务器配置:

const cors = require('cors');
const express = require('express');

const CORS_WHITELIST = [ 'http://localhost:5000' ];

const corsOptions = {
  origin: (origin, callback) => {
    console.log(origin) // ----> this is always 'undefined'
    if (CORS_WHITELIST.indexOf(origin) !== -1){
      callback(null, true)
    } else {
      callback(new Error('Not allowed by CORS'))
    }
  }
};

const configureServer = app => {
    app.use(cors(corsOptions));
};

module.exports = configureServer;

这是我的服务器启动文件:

const express = require('express');

const SERVER_CONFIGS = require('./constants/server');

const configureServer = require('./server');
const configureRoutes = require('./routes');

const app = express();

configureServer(app);
configureRoutes(app);

app.listen(SERVER_CONFIGS.PORT, error => {
  if (error) throw error;
  console.log('Server running on port: ' + SERVER_CONFIGS.PORT);
});

我在本地主机上运行这个服务器,但是cors回调中的原点总是“未定义”。例如,当我在浏览器上打开http://localhost:5000或进行curl调用时。

如何使用cors使其不阻塞本地主机上的请求?

共有1个答案

曾飞雨
2023-03-14

我读了这个问题,req.headers.origin是未定义的问题,也是CORS和Origin标头!

来源:

如果用户来自ssl加密的网站,来源可能会被隐藏。

另外:一些浏览器扩展从超文本传输协议请求标头中删除了来源和引用,因此来源属性将为空。

有一个解决方案可以通过添加中间件来解决这个问题:

app.use(function (req, res, next) {
  req.headers.origin = req.headers.origin || req.headers.host;
  next();
});

我希望这些有所帮助。该问题处于< code >等待更多信息状态!

 类似资料:
  • 本文向大家介绍轻松创建nodejs服务器(1):一个简单nodejs服务器例子,包括了轻松创建nodejs服务器(1):一个简单nodejs服务器例子的使用技巧和注意事项,需要的朋友参考一下 我们先来实现一个简单的例子,hello world。 似乎每种语言教程的第一节都会讲这个,我们也不例外。 首先我们先创建一个项目目录,目录可自己定义,本案例的目录为 e:/nodetest/。 由于我们要搭建

  • 问题内容: 我写了非常简单的服务器: 我使用nodejs运行它。 现在我想编写一个简单的客户端,该客户端使用ajax调用将请求发送到服务器并打印响应(Hello World) clinet的javascript: 当我打开客户端html文件时,在控制台中出现以下错误: 我尝试将以下内容添加到ajax调用中: 但后来我明白了 任何人都可以解释我做错了什么,也许如何解决? 非常感谢! 问题答案: 第一

  • 问题内容: 我正在尝试定义一些端点并使用进行测试。在我有: 并在: 现在,我正在尝试使用此端点: 但是,当我运行时,出现此错误: 我该如何解决该问题? 问题答案: 假设您通过进行测试,则必须使用命令而不是可执行文件运行测试。 因此,如果您还没有这样做,请确保您已这样做。然后,只需在项目的根目录中运行即可。

  • 除了图像文件之外,所有的数据都被发送到后端。我一直得到req.file是未定义的,这阻止了数据存储在数据库中。 在前端,我有一个表单,收集来自用户的输入,包括一张照片和一个文本描述。这是在一个组件文件中。

  • 本文向大家介绍Nodejs实现的一个简单udp广播服务器、客户端,包括了Nodejs实现的一个简单udp广播服务器、客户端的使用技巧和注意事项,需要的朋友参考一下 nodejs发送udp广播还是蛮简单的,我们先写个服务器用于接收广播数据,代码如下: 然后写个客户端程序,发送广播消息,代码如下: 这里需要注意的是socket.setBroadcast(true);必须在绑定socket成功后才能调用