如何修复拒绝在框架中显示url的问题,因为它在webkitgtk python中将x框架选项设置为拒绝

如何修复拒绝在框架中显示url的问题,因为它在webkitgtk python中将x框架选项设置为拒绝,python,gtk,x-frame-options,webkitgtk,Python,Gtk,X Frame Options,Webkitgtk,我正在用Python、Gtk和WebKitGtk构建一个简单的web浏览器。尝试加载youtube时,我收到以下错误消息: 控制台消息:关于:空白@0:拒绝显示'https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26feature%3Dpassive%26hl%3Den%26ne

我正在用Python、Gtk和WebKitGtk构建一个简单的web浏览器。尝试加载youtube时,我收到以下错误消息:

控制台消息:关于:空白@0:拒绝显示'https://accounts.google.com/ServiceLogin?continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26feature%3Dpassive%26hl%3Den%26next%3D%252Fsignin_passive&hl=en&passive=true&service=youtube&uilel=3,因为它将“X-frame-Options”设置为“否认”

我的代码(来自webkitgtk教程):


我如何解决这个问题?YouTube可以在其他web浏览器上正常运行。

你不能在
iframe
object
或类似的其他浏览器标签或浏览器
windows
等上设置X-Frame选项。这是由你请求资源的域设置的响应头(在你的例子中是google.com)。在这种情况下,他们设置了头,这意味着他们不允许加载资源。有关更多信息,请参阅

如果请求的webapge属于您,那么您可以在响应中设置
X-Frame-Options
标题,但看起来情况并非如此。 我不知道你想做什么,我想你是在你的应用程序中登录Youtube,你不能直接这样做,因为它需要谷歌认证,你需要在集成之前查看一下

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('WebKit', '3.0')
from gi.repository import Gtk, WebKit

class Main:
    def __init__(self):
        self.win = Gtk.Window()
        self.win.set_position(Gtk.WindowPosition.CENTER)
        self.win.set_title('window')
        self.win.set_default_size(1200, 800)

        self.btn_grid = Gtk.Grid()

        self.btn_grid.set_column_spacing(10)
        self.reload_button = Gtk.Button('Reload')
        self.reload_button.connect('clicked', self.reload_window)
        self.btn_grid.attach(self.reload_button, 0, 0, 1, 1)

        self.url_entry = Gtk.Entry()
        self.url_entry.set_hexpand(True)
        self.url_entry.connect('activate', self.display_url)
        self.btn_grid.attach(self.url_entry, 1, 0, 1, 1)

        self.go_btn = Gtk.Button('Go')
        self.go_btn.connect('clicked', self.display_url)
        self.btn_grid.attach(self.go_btn, 2, 0, 1, 1)

        self.main_box = Gtk.VBox()
        self.main_box.pack_start(self.btn_grid, False, False, 0)
        self.win.add(self.main_box)

        self.webview = WebKit.WebView()
        self.webview.connect('title-changed', self.title_update)
        self.webview.load_uri("https://google.com")


        self.scroll_area = Gtk.ScrolledWindow()
        self.scroll_area.add(self.webview)
        self.main_box.pack_start(self.scroll_area, True, True, 0)
        self.win.connect('destroy', Gtk.main_quit)

    def title_update(self, webview, frame, title):
        self.win.set_title(f'window - {title}')

    def display_url(self, event):
        url = self.url_entry.get_text()
        if url == '':
            pass
        else:
            if "://" not in url:
                url = f'https://{url}'
            self.webview.load_uri(url)
            self.webview.grab_focus()

    def reload_window(self):
        self.webview.reload()


    def w_open(self):
        self.win.show_all()

main_window = Main()
main_window.w_open()
Gtk.main()