简介
@koa/cors
是一个 Koa 中间件,用于添加 CORS 头信息以允许跨域请求。CORS(Cross-Origin Resource Sharing)是一种安全机制,它允许来自不同域名或端口的客户端发送跨域请求。
安装
使用 npm 安装 @koa/cors:
npm install @koa/cors
使用
基本用法
-- -------------------- ---- ------- ----- --- - --------------- ----- ---- - --------------------- ----- --- - --- ------ ---------------- -- -------- -----------------
在上面的示例中,我们创建了一个 Koa 应用,并引入了 @koa/cors 中间件。然后,将该中间件添加到应用程序实例中,以使它能够正确地处理所有传入的请求。
自定义选项
@koa/cors 也允许您自定义一些选项。以下是一些可能的选项:
- origin:设置 Access-Control-Allow-Origin 头信息的定义。默认值为 *,允许来自任何源的访问。可以设置指定源的字符串或一个函数。如果您希望根据请求动态计算允许的源,则应使用函数。
- exposeHeaders:设置允许客户端访问的响应头的列表。默认值为空。
- maxAge:设置客户端对 OPTIONS 预检请求的响应的缓存时间(以秒为单位)。默认值为 5。
- credentials:设置一个布尔值,指定是否可以发送凭据(例如 Cookie 或授权头)跨域请求。默认值为
false
,表示不允许发送凭据。 - allowMethods:设置允许的 HTTP 方法列表。默认值是 'GET,HEAD,PUT,POST,DELETE,PATCH'。
- allowHeaders:设置允许的请求头列表。默认值为空,表示允许客户端发送任何标准请求头。
以下是示例代码,它将自定义部分选项:
app.use(cors({ origin: 'https://example.com', exposeHeaders: ['Content-Security-Policy'], maxAge: 86400, credentials: true, allowMethods: ['GET', 'POST'], allowHeaders: ['Content-Type', 'Authorization'] }));
建议使用场景
- API 接口调用
- 跨站点表单(CSRF)环境下的 CSRF token 跨域请求
注意
@koa/cors 的执行顺序很关键。它必须在任何可能会使用 CORS 头信息的中间件之前执行,以确保正确设置任何必需的头信息。
结论
在本教程中,我们介绍了如何使用 @koa/cors 中间件来添加 CORS 头信息以允许跨域请求。我们了解了一些自定义选项,并了解了建议的使用场景。此外,我们还注意到中间件的执行顺序很关键,在任何使用 CORS 头信息的中间件之前,必须确保它正确执行。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/118200