【发布时间】:2020-01-16 01:11:06
【问题描述】:
我有一个用例,我想拦截和记录 HTTP OPTIONS 调用。我知道这些是作为 CORS 的一部分由浏览器完成的
我尝试过对 XMLHttpRequest 进行monkeypatching,还尝试过通过“fetch”事件拦截的 service-worker。
但是我只能捕获非 OPTIONS 调用(GET、PUT、POST)
如何拦截 OPTIONS 调用?我清楚地看到它们是在网络标签中完成的
【问题讨论】:
-
我认为你做不到。这发生在浏览器内部,它不是公开的 API。
-
@Barmar,如果是这样,您知道如何将任何遥测数据添加到 CORS 请求中吗?想象一下我做了一个 CORS 请求并且 OPTIONS 调用失败了,我应该怎么知道它失败的原因?
-
我不确定,但我认为
XMLHttpRequest.status将包含来自OPTIONS调用的错误代码。 -
@Barmar 谢谢,如果可能的话,你能链接我的文档吗?我也会尝试自己复制一下,看看是否属实
-
对不起,不知道是否或在哪里记录了这一点。但我只是假设如果您收到 CORS 错误,它将反映在 XHR 的状态中。它还会去哪里?
标签: javascript browser cors service-worker