>[danger]什么时候用OPTION请求? OPTION请求是一种HTTP请求方法,主要用于跨域资源共享(CORS)中的预检请求。当使用跨域AJAX请求时,将会发起OPTION请求用于询问服务器是否允许该AJAX请求。这是由于浏览器的同源策略限制了跨域AJAX请求的自由发起。 **跨域AJAX请求一般分为简单请求和非简单请求**。简单请求满足下列所有条件: - 使用GET、HEAD或POST请求方法之一; - 除了常见的简单请求头(如Accept、Accept-Language、Content-Language、Content-Type的值为application/x-www-form-urlencoded、multipart/form-data、text/plain之一)外,HTTP头部仅使用了以下字段: - Accept - Accept-Language - Content-Language - Content-Type的值为application/x-www-form-urlencoded、multipart/form-data、text/plain之一。 对于简单请求,浏览器会直接发送AJAX请求,并在HTTP头部添加一个Origin字段,表示请求的来源。如果服务器接受跨域请求,将在HTTP头部返回一个Access-Control-Allow-Origin字段,表示允许此来源的请求。如果服务器不允许跨域请求,将返回一个403 Forbidden错误。 对于非简单请求,由于可能存在复杂的请求头和请求体,需要先发送一个OPTION请求进行预检,检查服务器是否允许该请求,然后才能发送实际的AJAX请求。OPTION请求在HTTP头部添加了一个Access-Control-Request-Method字段,表示实际的请求方法,以及可能存在的Access-Control-Request-Headers字段,表示实际的请求头。服务器需要在HTTP头部返回一个Access-Control-Allow-Methods字段,表示允许的请求方法,以及一个Access-Control-Allow-Headers字段,表示允许的请求头。如果服务器不允许跨域请求,将返回一个403 Forbidden错误。 综上所述,**当使用跨域AJAX请求并且请求为非简单请求时,需要先发送OPTION请求进行预检**。