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

Put*_*ime 2 javascript c# chromium-embedded cefsharp

使用 CefSharp 71 版。

在从 JavaScript 进行 fetch() 调用时,最好在进行 GET/POST 调用之前进行飞行前 OPTIONS 调用。

但它实际上并没有做到。但是如果我在 Chrome 浏览器中尝试它,它确实如此。

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

这样做的结果是,由于没有进行 OPTIONS 调用,CORB 正在停止响应。错误是:跨源读取阻止 (CORB) 阻止了跨源响应https://some-api.com/blah与 MIME 类型 application/json。有关更多详细信息,请参阅https://www.chromestatus.com/feature/5629709824032768

CPJ*_*shi 5

看起来WebSecurity在您的BrowserSettings.

browserPlay.BrowserSettings = new BrowserSettings()
{
    WebSecurity = CefState.Disabled
};
Run Code Online (Sandbox Code Playgroud)

重现步骤:

  1. 在应用程序中添加以上代码
  2. 发出跨源 GET 请求,请注意该请求是在没有“Origin:”标头的情况下发出的,而 Response 没有 CORS 标头。
  3. 在控制台中,您将看到以下 CORB 错误: Cross-Origin Read Blocking (CORB) blocked cross-origin response
  4. 我在 CEF 版本上测试了上述内容 73.1.13