商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > CentOS中Node.js如何实现跨域访问

CentOS中Node.js如何实现跨域访问

  发布于2026-07-07 阅读(0)

扫一扫,手机访问

在 CentOS 环境下部署 Node.js 应用时,跨域访问几乎是绕不开的问题。前后端分离架构下,浏览器出于安全策略会拦截跨域请求,而解决方案的核心就是 CORS(跨来源资源共享)。那么,具体怎么在 Node.js 里把它配好?下面直接上干货。

CentOS中Node.js如何实现跨域访问

方法一:借助 Express 框架,一行代码搞定

如果你用的是 Express 框架,那最简单的方式就是引入 cors 中间件。安装过程就不赘述了,直接执行:

npm install cors express

然后在应用里这样配——既可以把所有来源都放行,也可以精确限定某个域名:

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

// 允许所有来源的跨域访问
app.use(cors());

// 或者,你可以指定允许的来源
app.use(cors({ origin: 'http://example.com' }));

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

这里需要注意:生产环境千万别图省事直接写 *,除非你真的打算向全世界开放接口。限定具体的域名才是更稳妥的做法。

方法二:不用框架?那就手动设置响应头

如果项目中没用 Express,或者你更想把控制权握在自己手里,那就手动在 HTTP 响应里添加 CORS 头部。来看一个原生 Node.js HTTP 服务的示例:

const http = require('http');

const server = http.createServer((req, res) => {
  // 设置跨域访问相关的响应头
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');

  // 处理预检请求
  if (req.method === 'OPTIONS') {
    res.writeHead(200);
    res.end();
    return;
  }

  res.write('Hello World!');
  res.end();
});

server.listen(3000, () => {
  console.log('Server is running on port 3000');
});

逻辑很清晰:收到请求后先设置三个关键头部——允许的来源、允许的 HTTP 方法、允许的自定义请求头。注意 OPTIONS 预检请求得单独处理,直接返回 200 即可。同样,出于安全考虑,生产环境应该把 Access-Control-Allow-Origin* 改成具体的域名。

两种方法都试下来,你会发现跨域配置本质上就是几个 HTTP 头部的博弈。选哪种取决于你的项目架构:用 Express 就上中间件,干净利落;原生写法则更适合定制化场景。关键的底线是——别为了省事牺牲安全性,毕竟接口暴露出去,谨慎点总没错。

本文转载于:https://www.yisu.com/ask/45920688.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注