当前位置: 首页 > news >正文

nodejs express设置允许跨域示例

前端设置withCredentials时,后端需要有2处配合,一个是 Access-Control-Allow-Origin不能是*号,另外一个是Access-Control-Allow-Credentials需要设为true

这样才能跨域请求时,携带cookie

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

const allowedOrigins = ['http://localhost:3000', 'http://127.0.0.1:5500'];

app.use((req, res, next) => {
  const origin = req.headers.origin;
  if (allowedOrigins.includes(origin)) {
    // 设置允许的来源
    res.setHeader('Access-Control-Allow-Origin', origin);
    // 允许携带 Cookie
    res.setHeader('Access-Control-Allow-Credentials', 'true');
    // 允许的请求方法
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
    // 允许的请求头
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
    // 预检请求结果缓存时间,单位秒
    res.setHeader('Access-Control-Max-Age', '86400');
  }
  // 预检请求直接返回
  if (req.method === 'OPTIONS') {
    return res.sendStatus(200);
  }
  next();
});

app.get('/api/data', (req, res) => {
  res.json({ message: '跨域请求成功!' });
});

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

详细说明参考如何解决跨域请求的问题(CORS)?-CSDN博客

http://www.dtcms.com/a/58935.html

相关文章:

  • C#运算符详解
  • 【免费】2013-2019年上市公司知识产权数据
  • 【架构艺术】Go语言微服务monorepo的代码架构设计
  • C、C++读取空格、回车符函数【getline、cin.get、cin.getline、std::noskipws】
  • 仿muduo库实现高并发服务器-面试常见问题
  • C#核心(22)string
  • 从0开始完成基于异步服务器的boost搜索引擎
  • 可重构智能表面(RIS)的全面介绍
  • 渐进稀疏注意力PSA详解及代码复现
  • KMP 算法的 C 语言实现
  • ROS2-话题学习
  • RabbitMQ高级特性--消息确认机制
  • [网络爬虫] 动态网页抓取 — Selenium 入门操作
  • 搞定python之一----开发环境配置
  • AtCoder Beginner Contest 396(ABCDEF)
  • 【LLM】大模型推理、微调显卡挑选一览表
  • 【论文解读】《LIMO: Less is More for Reasoning》
  • PHP的Workerman 和 Java 常驻内存的相似性
  • Java【网络原理】(3)网络编程续
  • 如何避免项目后期盲目加人赶工
  • 机试准备第13天
  • 知识蒸馏综述Knowledge Distillation: A Survey解读
  • 国产算力助力工业智能新范式
  • PyTorch 学习路线
  • 探秘 Netty 通信中的 SslHandler 类:保障网络通信安全的基石
  • 【MySQL】发展起源与核心架构组件详细介绍
  • STL之list的使用(超详解)
  • 【时间序列】Patch:到底是什么?
  • 【极光 Orbit•STC8A-8H】03. 小刀初试:点亮你的LED灯
  • 数字信号处理之信号功率谱计算welch方法(分段加窗平均周期图)、Bartlett方法(周期图)(Python)