Node.js 使用 cors 中间件解决跨域问题

CORS 跨域资源共享

什么是 CORS

cors 是 Express 的一个第三方中间件。通过安装和配置 cors 中间件,可以很方便地解决跨域问题。

CORS (Cross-Origin Resource Sharing,跨域资源共享)由一系列 HTTP 响应头组成,这些 HTTP 响应头决定浏览器是否阻止前端 JS 代码跨域获取资源

浏览器的同源安全策略默认会阻止网页"跨域"获取资源。但如果接口服务器配置了 CORS 相关的 HTTP 响应头,就可以解除浏览器端的跨域访问限制

CORS 的注意事项

① CORS 主要在服务器端进行配置。客户端浏览器无须做任何额外的配置,即可请求开启了 CORS 的接口。

② CORS 在浏览器中有兼容性。只有支持 XMLHttpRequest Level2 的浏览器,才能正常访问开启了 CORS 的服务端接口(例如:IE10+、Chrome4+、FireFox3.5+)。

CORS 响应头部 - Access-Control-Allow-Origin

响应头部中可以携带一个 Access-Control-Allow-Origin 字段,其语法如下:

其中,origin 参数的值指定了允许访问该资源的外域 URL
注意:为通配符 *,表示允许来自任何域的请求

CORS使用

使用步骤分为如下 3 步

  1. 运行 npm install cors 安装中间件
  2. 使用 const cors = require('cors') 导入中间件
  3. 在路由之前调用 app.use(cors()) 配置中间件
js 复制代码
const cors = require('cors');
app.use(cors())

Deom

js 复制代码
const express = require('express');
const cors = require('cors');


const app = express();

// 配置解析表单数据的中间件
app.use(express.urlencoded( {extended: false} ))

// 一定要在路由之前,配置 cors 这个中间件,从而解决接口跨域的问题
app.use(cors())


const router = require("./apiRouter.js")
// 把路由模块注册到 app 上
app.use("/api",router)

app.listen(80,()=>{
    console.log("http://127.0.0.1");
});
相关推荐
(; ̄ェ ̄)。1 小时前
在Nodejs中使用kafka(三)offset偏移量控制策略,数据保存策略
分布式·后端·kafka·node.js
begei8 小时前
nodejs版本管理,使用 nvm 删除node版本,要删除 Node.js 的某个版本详细操作
node.js
小白探索世界欧耶!~8 小时前
npm/pnpm软链接
前端·npm·node.js
柚子味儿的西瓜8 小时前
npm install --legacy-peer-deps和npm install --force的区别
前端·npm·node.js
_advance8 小时前
🚀不用新建后端项目!用 Vite 插件开发 Node 接口的正确姿势
前端·node.js
OpenTiny社区9 小时前
Node.js技术原理分析系列——如何在Node.js中新增一个内置模块
前端·开源·node.js·opentiny
CDwenhuohuo1 天前
使用 NVM 随意切换 Node.js 版本
node.js
随风起舞11 天前
node.js里的bind,apply, call的区别是什么
前端·javascript·node.js
神秘代码行者1 天前
Node.js Buffer 教程
javascript·node.js
m0_748234521 天前
【服务治理中间件】consul介绍和基本原理
中间件·consul