Angular/Typescript: 拦截器使浏览器发送一个额外的 OPTIONS http 请求

Angular/Typescript: Interceptor makes the browser sent an additional OPTIONS http request

我正在使用拦截器,以便将 JWT 令牌添加到每个发送到后端的请求,如 here 所述。我在 app.module.ts 文件中包含拦截器的方式是

providers: [
    ...
    { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }
]

当我检查浏览器上的网络选项卡时,我看到一个额外的 OPTIONS 请求,而不是我最初发送的 GET 请求。

如果我不使用拦截器,OPTIONS 请求不会被发送。为什么会这样,我可以保留拦截器但摆脱额外的 OPTIONS 请求吗?

这不是执行此操作的拦截器。 CORS 用于 Cross-Origin 资源共享。

每个浏览器都向与托管页面的域不同的域发送 OPTIONS 请求。

结果如this answer

所述

As soon as you add a custom header, in my case Authorization or do anything that causes it to no longer be a simple request it, by default, sends the preflight request with the OPTIONS method instead of, in my case, POST.

这里也提到的比较详细here

因此,如果您向其中添加自定义 headers,则无法避免额外的请求。