在`cors`配置中,如何设置预检请求的选项?

在使用cors模块时,预检请求(OPTIONS请求)的选项可以通过配置对象中的几个属性来设置。这些属性控制预检请求的响应,包括允许的方法、头部等。以下是一些关键的配置选项:

  1. methods: 指定允许的HTTP方法。这对于预检请求的响应是必需的,因为浏览器需要知道哪些方法被允许。

     

    javascript

    const corsOptions = {
      methods: ['GET', 'POST', 'PUT', 'DELETE'], // 允许的方法
    };
  2. allowedHeaders: 指定允许的HTTP头部。这些头部在预检请求的响应中会被包含在Access-Control-Allow-Headers中。

     

    javascript

    const corsOptions = {
      allowedHeaders: ['Content-Type', 'Authorization'], // 允许的头部
    };
  3. exposedHeaders: 如果你的服务器设置了某些自定义的头部,并且希望它们在浏览器端可以被访问,可以通过exposedHeaders属性来指定。

     

    javascript

    const corsOptions = {
      exposedHeaders: ['Custom-Header'], // 暴露给浏览器的头部
    };
  4. maxAge: 指定预检请求的结果可以被缓存多久(以秒为单位)。这可以减少预检请求的次数。

     

    javascript

    const corsOptions = {
      maxAge: 86400, // 24小时
    };
  5. preflightContinue: 默认情况下,cors模块会终止预检请求的处理。如果你需要在预检请求之后继续处理请求,可以设置preflightContinuetrue

     

    javascript

    const corsOptions = {
      preflightContinue: true,
    };
  6. optionsSuccessStatus: 指定预检请求的响应状态码。默认是204,但你可以设置为其他值,比如200。

     

    javascript

    const corsOptions = {
      optionsSuccessStatus: 200,
    };

将这些选项组合在一起,你可以创建一个详细的CORS配置,如下所示:

 

javascript复制

const express = require('express');
const cors = require('cors');
const app = express();

const corsOptions = {
  origin: 'https://www.us87.com',
  methods: ['GET', 'POST', 'PUT', 'DELETE'],
  allowedHeaders: ['Content-Type', 'Authorization'],
  exposedHeaders: ['Custom-Header'],
  maxAge: 86400,
  preflightContinue: true,
  optionsSuccessStatus: 200,
};

app.use(cors(corsOptions));

app.get('/', (req, res) => {
  res.json({ message: 'This is a CORS-enabled response!' });
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

通过这种方式,你可以精细控制预检请求的行为,确保CORS策略符合你的应用需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值