明明跨域了,却没有发送options请求?
如题,我明明跨域向后台进行了请求,但是在network中却没有看大发送options请求,咋回事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题,我明明跨域向后台进行了请求,但是在network中却没有看大发送options请求,咋回事?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
你可以把你的 请求的
request
贴出来 或者ajax
的代码 看看是不是简单请求其实跨域分为 简单跨域请求和复杂跨域请求
简单跨域请求是不会发送
options
请求的复杂跨域请求会发送一个预检请求
options
1、请求方法不是
GET/HEAD/POST
2、
POST
请求的Content-Type
并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3、请求设置了
自定义的header
字段AJAX 跨域请求可以分为两种:简单请求与非简单请求
简单请求:
HEAD
、GET
、POST
中的 1 种application/x-www-form-urlencoded
、multipart/form-data
、text/plain
等非简单请求:
PUT
、DELETE
形式的 AJAX 请求application/json
等当 AJAX 发出的是非简单请求时,浏览器才会发送预检(
OPTIONS
)请求,而且这个预检请求在服务端是可以设置缓存时间的。也就是第一次访问时才会发送预检请求,在缓存的时间内再次请求是不会发送预检请求的。你可以看一下你发送的 AJAX 请求是哪种类型的请求。
1.0 改成get的请求吧!2.0 post 要设置header字段!
需要后端开启接受options请求即可