在浏览器处理 跨域资源共享 (CORS) 时,将请求分为两大类:简单请求 (Simple Requests) 和 复杂请求 (Complex Requests)。 核心区别在于:是否会触发“预检请求”(Preflight Request,即 OPTIONS 请求)。 以下是详细的对比和解释: --- 1. 简单请求 (Simple Request) 简单请求是指那些不会触发 CORS 预检的请求。浏览器认为这类请求是“安全的”,因为它们类似于传统的 HTML 表单提交(在 CORS 出现之前就已经存在)。 触发条件(必须全部满足) 如果一个请求满足以下 所有 条件,它就是简单请求: 1. HTTP 方法 必须是以下三种之一: 2. HTTP 头部 (Headers) 不得包含自定义头部,只能包含以下“CORS 安全头部”: (有限制,见下条) (较少见) 3. Content-Type 的值仅限于以下三者之一: 请求流程 1. 浏览器直接发出跨域请求。 2. 请求头中携带 字段。 3. 服务器返回响应,如果响应头包含正确的 ,浏览器就接收响应;否则报错。 --- 2. 复杂请求 ...