💡
原文英文,约800词,阅读约需3分钟。
📝
内容提要
CORS(跨域资源共享)允许Web应用访问不同域的资源。本文介绍了如何在Node.js和Express中实现CORS,包括允许的HTTP方法、请求和响应头的定义,以及请求源的匹配检查。通过设置相关选项,可以控制跨域请求的行为。
🎯
关键要点
- CORS(跨域资源共享)允许Web应用访问不同域的资源。
- 本文介绍了如何在Node.js和Express中实现CORS。
- 定义了允许的HTTP方法,如GET、POST、PUT等。
- 指定了允许的请求源,示例中为http://localhost:3000。
- 定义了允许的请求头和响应头。
- checkOriginMatch函数用于检查请求源是否匹配允许的源列表。
- create函数初始化CORS选项,包括源和方法的默认值。
- 设置请求和响应头,确保它们以小写形式存储。
- maxAge指定CORS预检请求的最大缓存时间。
- supportsCredentials决定服务器是否支持跨域请求中的凭证(如cookies或tokens)。
- endPreflightRequests决定服务器是否结束预检请求(OPTIONS)或继续下一个中间件。
- 处理OPTIONS请求时,检查请求方法和头是否匹配允许的列表。
- 设置CORS响应头,如Access-Control-Allow-Origin、Access-Control-Allow-Credentials等。
- Access-Control-Expose-Headers设置可被客户端访问的响应头。
❓
延伸问答
什么是CORS,它的作用是什么?
CORS(跨域资源共享)是一种机制,允许一个域上的Web应用访问另一个域的资源,特别是在前后端分离的应用中至关重要。
如何在Node.js中实现CORS?
在Node.js中实现CORS可以通过设置允许的HTTP方法、请求和响应头,以及检查请求源来完成。
CORS中允许的HTTP方法有哪些?
CORS中允许的HTTP方法包括GET、HEAD、POST、PUT和DELETE。
如何指定允许的请求源?
可以通过设置CORS选项中的origins属性来指定允许的请求源,例如http://localhost:3000。
CORS的maxAge选项有什么作用?
maxAge选项指定CORS预检请求的最大缓存时间,以减少后续请求的延迟。
如何处理OPTIONS请求以支持CORS?
处理OPTIONS请求时,需要检查请求方法和头是否匹配允许的列表,并设置相应的CORS响应头。
➡️