CORS 允许服务器在响应头中指定允许的来源域。前端通过标准的 XMLHttpRequest 或 Fetch 请求与不同域的服务器通信。
而在 CORS 中会有 简单请求
和 复杂请求
的概念。
简单请求不会触发 CORS 预检请求。这样的请求为“简单请求”。
简单请求是一种跨域请求,但由于它满足一组特定的条件,浏览器会直接发送实际的请求,而不需要发送预检请求。这是跨域请求中的一种优化,可以减少不必要的网络请求。
简单请求同时满足以下条件:
application/x-www-form-urlencoded
、multipart/form-data
和 text/plain
)XMLHttpRequestUpload
对象均没有注册任何事件监听器。ReadableStream
对象。FormData
对象。除以上情况外的。
复杂请求不符合简单请求的条件,通常是因为请求方法是非标准的或者包含自定义头信息。对于复杂请求,浏览器会发送预检请求(OPTIONS 请求)到目标服务器,以获取服务器是否允许跨域请求的信息。
Authorization
、X-Requested-With
。