跨源资源共享(CORS)是一种机制,它允许或限制浏览器向不同的源请求资源。以下是 CORS 的一些基本概念和设置方法。

基本概念

  • 简单请求:不发送额外头部信息的请求,例如 GET、POST、HEAD 方法,且请求头中不包含自定义头部。
  • 预检请求:浏览器在发起实际请求前,会先发送一个预检请求(OPTIONS 方法),询问服务器是否允许该请求。

设置 CORS

在服务器端,可以通过以下方式设置 CORS:

  • 在响应头中添加 Access-Control-Allow-Origin 字段,指定允许访问的源。

    • 例如:Access-Control-Allow-Origin: * 允许所有源访问。
    • 或者:Access-Control-Allow-Origin: https://example.com 仅允许指定源访问。
  • 添加其他响应头,例如:

    • Access-Control-Allow-Methods:允许的 HTTP 方法。
    • Access-Control-Allow-Headers:允许的自定义头部。

示例

假设我们有一个 API 接口 https://api.example.com/data,我们可以这样设置 CORS:

app.use((req, res, next) => {
  res.header("Access-Control-Allow-Origin", "https://example.com");
  res.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  res.header("Access-Control-Allow-Headers", "Content-Type, Authorization");
  next();
});

扩展阅读

更多关于 CORS 的信息,请访问 CORS 教程

CORS 图片