CEF JS加载错误(使用自定义方案)

时间:2018-05-10 08:31:22

标签: c++ cross-domain chromium-embedded

目前正在开发一个CEF3 C ++项目,我遇到了一个看似相当顽固的问题,并且确实减慢了开发过程。

我们的应用程序应该提供SPA。我读到file://方案不适合将本地数据加载到浏览器中,因此我们继续实施CefSchemeHandlerCefSchemeHandlerFactory,但到目前为止,我们只执行服务我们SPA的文件。

现在问题:我们特别想加载React,React-DOM和Babel,如下所示:     https://unpkg.com/react@16.3.2/umd/react.production.min.js
    https://unpkg.com/react-dom@16.3.2/umd/react-dom.production.min.js
    https://unpkg.com/babel-standalone@6/babel.min.js
通过CDN的脚本标签加载这些内容时,一切正常。对于我们的mime类型为text/babel的自定义应用脚本,我只会遇到跨源启动错误。我们希望通过SchemeHandler加载所有“离线”然后,这就是出现问题的地方。 如果我在Windows中加载脚本并通过方案处理程序将它们返回到自定义域,那么我们得到的就是每个脚本开头的语法错误。有时在功能之前为!,有时则为其他东西 无论我们做什么,它似乎都没有成功 我已经验证过,所有字节(整个脚本)都被加载到浏览器中,因此没有数据丢失。

实施CefSchemeHandler并向浏览器提供本地巨大脚本和文件的正确方法是什么?

编辑:为了更清楚,我想补充一点,这个问题主要是询问通过CefSchemeHandler提供的完全相同的脚本获取语法错误的可能原因,而不是通过file://正确加载它们的所有内容://或通过CDN。

编辑2:我将自定义方案更改为https://并且CORS现在正在运行。但是我仍然有一个非常奇怪的问题与js加载。这是一个具体的例子:我通过https(工作)加载我的index.html。然后我通过相对路径加载react.js(工作) <script type="application/javascript" src="lib/react.production.min.js"></script> 然后我想加载react-dom: <script type="application/javascript" src="lib/react-dom.production.min.js"></script> 我得到[0511/083919.988:INFO:CONSOLE(75)] "Uncaught SyntaxError: Invalid or unexpected token", source: https://test/lib/react-dom.production.min.js (75)

现在奇怪的事情:如果我从https://unpkg.com/react-dom@16.3.2/umd/react-dom.production.min.js加载脚本(react-dom)(它是完全相同的脚本),一切作品!

Plase帮助我!

0 个答案:

没有答案