跨域资源共享(CORS)是常见的前端开发问题之一。connect-cors 是一个广泛使用的 Node.js 中间件,它提供了简单的解决方案来处理 CORS 问题。
安装和基本用法
首先,使用以下命令安装 connect-cors:
npm install connect-cors
然后,在 Express 应用程序中使用以下代码启用 connect-cors:
const express = require('express'); const cors = require('connect-cors'); const app = express(); app.use(cors());
现在,您的应用程序已经配置了 CORS 中间件,可以接受来自其他域的请求。
配置选项
connect-cors 提供了一些可配置选项,可以通过传递一个选项对象进行设置。以下是一些常用的选项:
- origin: 允许的源。可以是字符串、正则表达式或函数。
- methods: 允许的 HTTP 方法。默认为 'GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS'。
- allowedHeaders: 允许的请求头列表。默认为 'Content-Type,Authorization,X-Requested-With'。
- exposedHeaders: 公开的响应头列表。默认为空。
- credentials: 是否允许发送凭证(例如 cookies)。默认为 false。
- maxAge: 预检请求的最大时间(以秒为单位)。默认为 5 秒。
以下是一个基本的示例,展示如何自定义选项:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ------------------------ ----- --- - ---------- -------------- ------- ---------------------- -------- ----------- ------------ ---- ----
高级用法
connect-cors 还提供了更高级的用法,例如自定义响应头、预检请求等。以下是一些示例:
自定义响应头
您可以使用 exposedHeaders 选项来公开一个或多个响应头:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ------------------------ ----- --- - ---------- -------------- --------------- -------------------- ---- ------------ ----- ---- -- - ----------------------------------- ----- -------- --------------- --------- ---
预检请求
当浏览器请求具有特殊 HTTP 方法或自定义请求头的资源时,它将发送预检请求(OPTIONS 请求)。connect-cors 提供了 optionsSuccessStatus 选项,用于设置预检请求成功的状态码。
以下示例设置了 optionsSuccessStatus 为 204:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ------------------------ ----- --- - ---------- -------------- -------- ----------- --------------------- --- ---- ------------------ ----- ---- -- - -- ------ ----- ------- ---
结论
使用 connect-cors 可以轻松地解决 CORS 问题,让前端开发更加愉快和高效。在使用过程中,可以根据需要进行配置和定制。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/53272