在跨域情况下,浏览器会先发起一个 OPTIONS 请求,用于探测服务器是否允许跨域访问,这个请求被称作预检请求。OPTIONS请求只是用来确定服务端CORS策略,以便下一步发出实际的请求,所以该请求是不会携带任何数据的。如果预检请求响应表明跨域请求被允许,则浏览器会发出实际的请求。而如果预检请求响应表明跨域请求不被允许,则浏览器会抛出错误。这样的设计可以保证页面的安全性,防止恶意页面未经用户允许获取用户数据。
为什么Ajax请求会出现OPTIONS请求方式? - 一种常见的跨域请求问题
2 min read