Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • AIGC

  • Git

  • Linux

  • 数据协议

  • 数据结构

  • 架构设计

  • 算法

  • 编程工具

  • 编程范式

  • 编解码

  • 网络基础

    • HTTP状态码
    • CDN
    • DNS
    • HTTP
    • TCP
    • Web安全
    • http2
    • https
    • websocket
    • 跨域
    • cookie
    • 如何减少预检请求OPTIONS
      • 前言
      • 后记
    • 浏览器缓存
  • 通用技术
  • 网络基础
gahing
2018-12-16
目录

如何减少预检请求OPTIONS

# 前言

先说结论,只能将复杂请求改造为简单请求

常见的做法是:

  1. token放原生的请求头:Authorization
  2. Content-Type 改为text/plain 然后后端统一处理

若无法修改请求,那么可以设置 Access-Control-Max-Age 响应

每个url的OPTIONS都有一个生命周期,在该时间内不会再次发生。chrome默认是5s

故我们可以通过设置Access-Control-Max-Age来提高周期上限。不过每个浏览器也是有上限的,比如chrome上限是10min。

故此,在10min内 对于 同一请求(完整url相同,参数不同也视为不同url) 不会再发第二次OPTIONS。

注意:若设置了 disable-cache 那么每次复杂请求都会发OPTIONS

# 后记

写这篇博客的背景是原来有个项目的前后端分离做的不对

前端资源(包括index.html)单独一台服务器,然后访问其他服务器的接口

实际这种应该在前端服务器这边做个转发,避免跨域。或者 index.html 放在后端服务器,其他资源放前端服务器,没有跨域问题

编辑 (opens new window)
#HTTP#跨域
上次更新: 2024/09/01, 23:56:56
cookie
浏览器缓存

← cookie 浏览器缓存→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2024 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式