这两种请求的区别主要在于是否会触发cors预检请求
简单请求
1、请求方法
- GET
- POST
- HEAD
2、不得人为设置该集合之外的其他首部字段。该集合为:
- Accept
- Accept-Language
- Content-Language
- Content-Type
3、Content-Type 的值仅限于下列三者之一:
- text/plain
- multipart/form-data 文件上传时要使用的数据类型
- application/x-www-form-urlencoded 最常见的post的数据类型,也是表单提交的数据类型,jquery的ajax默认也是这个
4、请求中的任意XMLHttpRequestUpload 对象均没有注册任何事件监听器;XMLHttpRequestUpload 对象可以使用 XMLHttpRequest.upload 属性访问
5、请求中没有使用 ReadableStream 对象
复杂请求
- 不符合简单请求的就是复杂请求
常用情况: 用Authorization请求携带用户请求首部字段,不符合第二点,就触发了复杂请求