ajax 請求遵循同源策略(協(xié)議虏冻、域名、端口必須一致)弹囚,若突破該限制厨相,會產(chǎn)生跨域行為,設(shè)置Access-Control-Allow-Origin: *余寥,可允許客戶端跨域訪問领铐。
除上述情況外,還有一種請求叫做Preflighted Request(帶預(yù)檢的跨域請求)宋舷。
Preflighted Request在發(fā)送真正的請求前绪撵,會先發(fā)送一個(gè)方法為OPTIONS的預(yù)請求(Preflighted Request),用于試探服務(wù)端是否能接受真正的請求祝蝠。如果options獲得的回應(yīng)時(shí)拒絕性質(zhì)的音诈,如404幻碱、403、500等狀態(tài)细溅,就會停止post褥傍、get請求的發(fā)出。
1喇聊、請求方法不是GET/HEAD/POST
2恍风、POST請求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3、請求設(shè)置了自定義的header字段
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type
Access-Control-Max-Age: 86400