明明跨域了,却没有发送options请求?

发布于 2022-09-07 23:34:00 字数 149 浏览 7 评论 0

如题,我明明跨域向后台进行了请求,但是在network中却没有看大发送options请求,咋回事?

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜心小果奶 2022-09-14 23:34:00

你可以把你的 请求的request 贴出来 或者 ajax的代码 看看是不是简单请求
其实跨域分为 简单跨域请求复杂跨域请求
简单跨域请求是不会发送options请求的
复杂跨域请求会发送一个预检请求options
1、请求方法不是GET/HEAD/POST
2、POST请求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
3、请求设置了自定义的header字段

养猫人 2022-09-14 23:34:00

AJAX 跨域请求可以分为两种:简单请求与非简单请求

简单请求:

  • 请求方法为 HEADGETPOST 中的 1 种
  • 请求的 header 中没有自定义的请求头
  • Content-Type 为以下几种:application/x-www-form-urlencodedmultipart/form-datatext/plain

非简单请求:

  • header 中包含自定义请求头的 AJAX 请求
  • PUTDELETE 形式的 AJAX 请求
  • Content-Type 字段的类型是 application/json

当 AJAX 发出的是非简单请求时,浏览器才会发送预检(OPTIONS)请求,而且这个预检请求在服务端是可以设置缓存时间的。也就是第一次访问时才会发送预检请求,在缓存的时间内再次请求是不会发送预检请求的。

你可以看一下你发送的 AJAX 请求是哪种类型的请求。

糖粟与秋泊 2022-09-14 23:34:00

1.0 改成get的请求吧!2.0 post 要设置header字段!

二智少女猫性小仙女 2022-09-14 23:34:00

需要后端开启接受options请求即可

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文