看来,在最近的 Chrome 版本中(或者至少最近在调用我的 API 时——直到今天才看到它),谷歌正在发出有关 CORB 请求被阻止的警告。
跨域读取阻止 (CORB) 阻止了 MIME 类型为 text/plain 的跨域响应 [域]。有关详细信息,请参阅https://www.chromestatus.com/feature/5629709824032768 。
我已经确定对我的 API 的请求是成功的,并且是飞行前的 OPTIONS 请求触发了控制台中的警告。
调用 API 的应用程序并没有显式地发出 OPTIONS 请求,而是我已经明白这是在发出跨域请求时由浏览器强制执行的,并且是由浏览器自动完成的。
我可以确认 OPTIONS 请求响应没有定义 mime 类型。但是,我有点困惑,因为我的理解是 OPTIONS 响应只是标题,不包含正文。我不明白为什么这样的请求需要定义 MIME 类型。
此外,控制台警告说请求被阻止;然而,各种 POST 和 GET 请求都成功了。所以看起来好像 OPTIONS 请求实际上并没有被阻止?
这是一个三部分的问题:
- 当没有正文响应时,为什么 OPTIONS 请求需要定义 MIME 类型?
- 如果纯/文本不合适,那么 OPTIONS 请求的 mime 类型应该是什么?我会假设application/json是正确的吗?
- 如何配置我的Apache2服务器以包含所有飞行前 OPTIONS 请求的 mime 类型?