【发布时间】:2020-09-05 18:44:06
【问题描述】:
我正在尝试使用“file://”域页面在 iframe 中加载 http://google.com。当然,我收到“Google.com 不允许”错误。 我已经尝试过反向代理,但我认为反向代理没有意义。
在那之后,我研究了几个小时关于禁用或绕过 webkit gtk 中的“跨源策略”。
我在本手册页中尝试了一些解决方案,https://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html
所以,我尝试在 WebKitSettings 中添加此块
WebKitSettings *settings =
webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webview));
webkit_settings_set_allow_file_access_from_file_urls(settings, true);
webkit_settings_set_allow_file_access_from_file_urls(settings,true);
但它不起作用。我仍然无法在 iframe 中连接到 google.com(或任何受 cors 保护的网站)。
根据我最近的研究,Webkit GTK 手册对此有一些小技巧。 它被称为property
(允许从文件 URL 访问文件)
但我不知道如何实现我的代码。
编辑:
我在我的代码中添加了这一行
webkit_settings_set_allow_universal_access_from_file_urls(settings,true);
现在我也收到“在框架中拒绝连接,因为它将 X-Frame-Options 设置为 SAMEORIGIN”错误。 如何在 webkitgtk 中设置跨域?
【问题讨论】:
-
您无法绕过 CORS 策略。您的应用应在发出请求的服务器上列入白名单(在您的情况下为 Google)。
标签: c++ browser gtk webkit webkitgtk