文章内容

2024/11/19 0:01:27,作 者: 黄兵

在跨域请求(cors)中 max_age 的作用

在 CORS(跨域资源共享)配置中,max_age 指定了 预检请求(OPTIONS 请求) 的结果可以缓存的时间,单位是秒。预检请求是浏览器在发送跨域请求(例如,使用 POST 或自定义头部)之前,先发送一个 OPTIONS 请求来询问服务器是否允许该请求的实际发送。

具体作用:

  • 最大缓存时间(Max-Age)max_age 参数指定了浏览器可以缓存预检请求的结果多长时间。如果在这个时间内,浏览器再次发起相同的跨域请求,它将直接使用缓存的结果,而不再发送预检请求。

  • 避免多次预检请求:如果 max_age 设置为较大的值,浏览器就不会每次都发送预检请求,而是直接使用缓存的响应,从而减少了跨域请求的延迟和带宽消耗。

示例:

如果 max_age 设置为 3600,表示预检请求的结果可以缓存 1 小时。在这段时间内,所有相同的跨域请求都会跳过预检请求,直接使用之前的 CORS 配置响应。

用法:

{
    "allow_origin": "https://*.pdflibr.com",
    "allow_methods": "GET, POST",
    "allow_headers": "*",
    "max_age": 3600
}

在上面的例子中,max_age: 3600 表示预检请求的结果将会缓存 3600 秒(即 1 小时),在此期间,跨域请求将不需要重复进行预检。

注意事项:

  • max_age 应该是一个正整数,表示缓存的秒数。
  • 如果不设置 max_age,预检请求的结果默认不会被缓存。


其它相关推荐:

1、fontawesome Access-Control-Allow-Origin 跨域

2、用 Identity Server 4 (JWKS 端点和 RS256 算法) 来保护 Python web api

3、Identity Server3 教程目录

4、Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

5、IdentityServer4.Hosting.CorsPolicyProvider:Warning: CorsPolicyService did not allow origin: http://localhost:4200

分享到:

发表评论

评论列表