0

有“X-Frame-Options: SAMEORIGIN”标头阻止 Apps 脚本在不是来自 sites.google.com(或 docs.google.com)的页面中呈现

如何创建 python 代理以从 IFrame 工作。我怀疑代理需要替换 SAMEORIGIN 标记并使用 ajax 样式的 POST 命令。这对我来说是一个新的领域,以前不需要设置代理。

Google Apps 脚本页面示例: https ://docs.google.com/macros/exec?service=AKfycbyrbgVS39Hf-RHYVPbnCKzf_uVaD0sGeFSKEqyRIw

这个代理解决方案看起来很接近: 如何让我的简单扭曲代理工作?

我找到了在 App Engine 上设置代理的说明,但是使用 ajax 样式的 POST 命令失败了: http ://www.labnol.org/internet/setup-proxy-server/12890/

这是一个已知的 Google Apps 脚本问题 #546 和 #522。大约 1 岁,大约有 100 人在寻找解决方案。

4

1 回答 1

0

bs2grproxy 进行了一些小的更改。我在这里发布了解决方案: http ://code.google.com/p/google-apps-script-issues/issues/detail?id=546#c104

变化:

在第 48 行下面的文件 bs2grproxy.py 中,“raise Exception('Unsupported ...”插入:

        scm = 'https'

在第 134 行下方,“raise Exception('Requested ...”插入:

            if fetched:
                if resp.headers.get('Content-Type', '').find('html') >= 0:
                    resp.content = resp.content + '<style type="text/css"> .warning-panel {display: none;} </style>'
                    resp.headers['x-frame-options'] = 'IGNORE'
                    logging.info("warning-panel hidden and x-frame-options reset")

您可能还需要在 bs2grproxy.py 中更改代理超时,如下所示:

resp = urlfetch.fetch(new_path, self.request.body, method, newHeaders, False, False, 30)

涡流。

于 2012-05-17T00:36:06.707 回答