【问题标题】:Its is possible to remove OPTIONS request by client side only?是否可以仅通过客户端删除 OPTIONS 请求?
【发布时间】:2019-04-20 22:30:59
【问题描述】:

我与我的同事进行了辩论,他说可以删除选项请求(在 POST、PUT 等之前),而无需在服务器的响应中配置 max-age 标头。 这个有可能?使用 XHR 还是 fetch?

【问题讨论】:

  • OPTIONS 调用是由浏览器在它想要并且无法由您控制时进行的,我也有过同样的争论。我怀疑您调用 API 并看到这些“额外”调用?我不会担心的。

标签: javascript cors fetch axios


【解决方案1】:

选项: 它通常被称为飞行前呼叫。只有当您点击跨域时才会发生这种情况。

跨域

  1. 您的客户端在 abc.com 上运行,而服务器在 xyz.com 上。浏览器会将其视为跨域调用。

  2. 即使您访问的是同一个域,但端口会有所不同。浏览器会将其视为跨域。

为了避免预检

拥有自己的简单 http 服务器,让它与 xyz.com 对话。由于我们从服务器访问不同的域,浏览器不会进行 OPTIONS 调用。

如果您需要进一步的帮助,请告诉我。

【讨论】:

  • 所以如果我的客户端和服务器是cors,就没有办法取消options请求(不设置max-age header)对吧?
  • 是的,没有办法取消它。
  • 就像我想的那样。但是当我使用 Rested / Postman 时,没有选项请求,这是什么解释?
  • 一般浏览器不允许我们消费cors req。我们会得到响应,但我们不能使用它。如果我们在服务器响应中将访问控制标头设置为 *。然后它会允许。 CORS 主要仅被浏览器阻止,这就是您可以从 POSTMAN 中访问的原因。 POSTMAN 不完全是我们的客户(即浏览器)。我希望你明白了。如果需要任何东西,请告诉我。
猜你喜欢
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 2015-04-07
  • 1970-01-01
  • 2023-01-13
  • 1970-01-01
  • 2010-09-18
相关资源
最近更新 更多