CefSharp:JavaScript fetch() 调用不会进行飞行前 OPTIONS 调用

CefSharp: JavaScript fetch() call doesn't make the pre-flight OPTIONS call

使用 CefSharp 版本 71。

从 JavaScript 进行 fetch() 调用时,理想情况下应该在进行 GET/POST 调用之前进行飞行前 OPTIONS 调用。

但实际上并没有成功。 但是如果我在 Chrome 浏览器中尝试它,它会。

在 Chrome 浏览器上试过了,它确实进行了飞行前 OPTIONS 调用。

结果是,由于未进行 OPTIONS 调用,CORB 正在停止响应。 错误是: 跨源读取阻止 (CORB) 阻止了跨源响应 https://some-api.com/blah with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 以获取更多详细信息。

您的 BrowserSettings 中似乎已将 WebSecurity 设置为禁用。

browserPlay.BrowserSettings = new BrowserSettings()
{
    WebSecurity = CefState.Disabled
};

重现步骤:

  1. 在应用中添加以上代码
  2. 发出跨源 GET 请求,请注意请求是在没有 "Origin:" header 的情况下发出的,并且响应没有 CORS headers。
  3. 在控制台中,您将看到以下 CORB 错误:Cross-Origin Read Blocking (CORB) blocked cross-origin response
  4. 我在 CEF 版本 73.1.13
  5. 上测试了以上内容