OPTIONS预检请求

跨域限制

阮一峰跨域资源共享 CORS 详解

出于安全考虑,浏览器会限制从JS发起的跨域HTTP请求,像XMLHttpRequest和Fetch都遵循同源策略。浏览器限制跨域请求一般有两种方式:

  1. 浏览器限制发起跨域请求
  2. 跨域请求可以正常发起,但是返回的结果被浏览器拦截了

一般浏览器会采用第二种方式,为了防止请求成功发起导致数据库数据受到影响,规定对简单请求以外的请求方式在发起前先使用OPTIONS方法发起一个预检请求(Preflight)判断是否支持CORS,如果不允许则不发送真实请求。

简单请求

同时满足下述两个条件则为“简单请求”:

  1. 请求header里只能有以下字段
  • accept
  • accept-language
  • content-language
  • content-type
  1. 请求方式为以下三种之一
  • GET
  • HEAD
  • POST(仅当Content-Type值等于下列之一才算简单请求)
    • text/plain
    • multipart/form-data
    • application/x-www-form-urlencoded

你可能感兴趣的:(OPTIONS预检请求)