-1

我们的一些 API(REST)使用 HTTP 方法 OPTIONS 获得大量请求。虽然这些 API 只支持 GET 方法。由于不支持 OPTIONS,所有这些请求都会变成 4xx。

观察:这些请求即将到来

  • 来自不同的客户端 IP
  • 有空白的referer
  • 使用有效的用户代理。我随机检查,请求来自移动浏览器。

我该如何处理这些请求?如何确保这些请求有效?我应该与 GET 一起启用 OPTIONS 吗?

请注意,某些页面具有 AMP 版本。这可能有关系吗?

4

1 回答 1

1

只是一个猜测:

许多前端(如 Angular 等框架)发送所谓的“预检请求”。

CORS 预检请求是检查是否理解 CORS 协议的 CORS 请求。

这是一个 OPTIONS 请求,使用三个 HTTP 请求标头:Access-Control-Request-Method、Access-Control-Request-Headers 和 Origin 标头。

需要时,浏览器会自动发出预检请求。在正常情况下,前端开发人员不需要自己制作此类请求。

https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

因此,如果您的 API 有不同的前端使用它是合法的,我会说您应该接受这些标头。

于 2018-09-17T10:38:32.007 回答