>[danger]跨域的场景下一定会发OPTION吗? 不一定,当跨域AJAX请求满足一定条件时,不需要发送OPTION请求。 根据CORS规范,只有当跨域AJAX请求满足以下条件之一时,浏览器才会自动发起OPTION请求进行预检: 1. 使用了并非GET、HEAD或POST的HTTP方法。如PUT、DELETE等。 2. 使用了POST请求方法,并且Content-Type的值不是application/x-www-form-urlencoded、multipart/form-data、text/plain中的一种。 3. 使用了自定义请求头(除了以下几种常见字段:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type),即使用了未在标准中定义的自定义请求头。 对于这三种情况之外的跨域AJAX请求都属于简单请求,而且简单请求也不需要设置额外的请求头,因此浏览器会自动将Origin字段添加到HTTP头部中,然后直接发送AJAX请求。如果服务器允许该跨域请求,则在响应头中添加Access-Control-Allow-Origin字段来表明同意跨域访问,否则浏览器将抛出跨域访问错误。因此在这种情况下,OPTION预检请求是没有必要的。