1. 原因
一般是请求前修改了以下几个 HTTP 请求首部的 OPTIONS默认 请求:
- Access-Control-Request-Method
- Access-Control-Request-Header
- Origin
此时,浏览器会自动发出一个预检请求,判断是否可以发送请求。
比如说,用put,delete请求方法。
跨域也会发送预检请求,判断是否可以连接。通常的get.post请求是不会发送预检请求
例如:一个客户端可能会在实际发送一个 DELETE 请求之前,先向服务器发起一个预检请求,用于询问是否可以向服务器发起一个 DELETE 请求
例子如下
2,作用
判断服务器是否允许请求。
参考链接:https://developer.mozilla.org/zh-CN/docs/Glossary/Preflight_request