关于CORS是复杂请求却没有预检的问题

我使用的Axios,在请求头中加入了config.headers.Authorization来传递token
然后定义了config.headers.post['Content-Type'] = 'application/json';

我看MDN上说,Content-Typeapplication/json是复杂请求,会有OPTIONS预检。

我的个人项目,每次请求都有两次:
image.png
这次是预检
image.png
这次是返回数据
image.png

但是在我看掘金的请求的时候,也是Content-Type: application/json,就没有看见OPTIONS预检这一项呢?
就是下图:
image.png

难道掘金不是复杂请求吗?而且我看网站,都没有看见OPTIONS预检。是因为大家都给设置了Access-Control-Max-Age,减少了预检吗?

阅读 3.9k
1 个回答

请求跨域资源才会有 OPTIONS 预检,同域请求是没有的。

另外预检结果会根据 Access-Control-Max-Age 来缓存。

你可以勾选上开发者工具的 Disable cache 强制不缓存再看看,就能看到预检的请求。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏