如题,我明明跨域向后台进行了请求,但是在network中却没有看大发送options请求,咋回事?
AJAX 跨域请求可以分为两种:简单请求与非简单请求
简单请求:
HEAD
、GET
、POST
中的 1 种application/x-www-form-urlencoded
、multipart/form-data
、text/plain
等非简单请求:
PUT
、DELETE
形式的 AJAX 请求application/json
等当 AJAX 发出的是非简单请求时,浏览器才会发送预检(OPTIONS
)请求,而且这个预检请求在服务端是可以设置缓存时间的。也就是第一次访问时才会发送预检请求,在缓存的时间内再次请求是不会发送预检请求的。
你可以看一下你发送的 AJAX 请求是哪种类型的请求。
9 回答1.7k 阅读✓ 已解决
6 回答1.5k 阅读
3 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
3 回答1k 阅读
3 回答1.3k 阅读✓ 已解决
你可以把你的 请求的
request
贴出来 或者ajax
的代码 看看是不是简单请求其实跨域分为 简单跨域请求和复杂跨域请求
简单跨域请求是不会发送
options
请求的复杂跨域请求会发送一个预检请求
options
1、请求方法不是
GET/HEAD/POST
2、
POST
请求的Content-Type
并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3、请求设置了
自定义的header
字段