1

我正在使用 CEF 迈出第一步。我知道一些 Python,所以我正在使用 CEFPython。我正在制作一个简单的应用程序,使用 Python 处理来自本地数据库的一些数据,然后将这些数据写入 JSON 文件。目标是最终使用 HTML、JS 和 CSS 很好地显示 JSON 数据。

我开始从 Github 存储库修改tutorial.py文件。首先,我将 HTML 代码放在一个变量中,并以这种方式读取它:

    HTML_code = open("test.html", "r").read()

然后我创建一个浏览器:

    browser = cef.CreateBrowserSync(url=html_to_data_uri(HTML_code),
                                settings = browser_settings)

现在,在 HTML 的标题中,我这样调用 JSON 文件:

  <script src="test.json"></script>

我可以在 Chrome 上完美呈现网站以及 JSON 文件。但是使用 CEFPython,我无法以这种方式加载 JSON 文件。我猜可能存在一些CORS问题。

我尝试按照此答案的建议修改浏览器和 cef.Initialize 设置。但这些变化似乎没有任何效果。这就是我尝试设置它们的方式:

    switches = {
    "disable-web-security": ""
}

browser_settings = {
    "file_access_from_file_urls_allowed": "",
    "universal_access_from_file_urls_allowed": "",
    "web_security_disabled": ""
}

cef.Initialize(settings=settings, switches=switches)
set_global_handler()
HTML_code = open("test.html", "r").read()
browser = cef.CreateBrowserSync(url=html_to_data_uri(HTML_code),
                                settings = browser_settings)

所有文件(python 脚本、HTML 和 JSON)都在同一个文件夹中。我正在使用该文件夹上终端中的“python test.py”来运行它。我不想使用完整路径来调用文件,因为该程序将被其他不具有相同路径的人使用。

如何正确加载 JSON 文件?

4

1 回答 1

0

您正在使用数据 URI 协议和使用文件协议的“test.json”加载网页。不允许混合协议。两者都使用文件协议或两者都使用数据 uri ( <script src="data:text/javascript..."></script>)。

于 2019-01-17T09:15:54.613 回答