瀏覽器對復雜跨域請求的處理,在發送真正的請求前, 會先發送一個方法為OPTIONS的預請求(preflight request), 用於試探服務端是否能接受真正的請求,如果options獲得的回應是拒絕性質的,比如404\403\500等http狀態,就會停止post、put等請求的發出。
有三種方式會導致這種現象:
1、請求方法不是GET/HEAD/POST
2、POST請求的Content-Type並非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3、請求設置了自定義的header字段
解決方法:
設置Access-Control-Max-Age,,,,,預檢一次設置一個有效期,在有效期內不再重復預檢。