0

我正在开发一个 .net 应用程序,该应用程序允许用户将 google doc 链接附加到应用程序并从应用程序本身查看/编辑它们。我使用 iframe 将谷歌文档嵌入到我的应用程序中。

由于应用程序中嵌入的 google doc 应该离线发生,我使用来自 Google API 的访问令牌来获取 URL 并显示。我在这方面有显示问题。

我已经完成了与获取根据 Google API 文档“脱机”打开 google doc 所需的访问令牌相关的所有工作。根据google api开发人员文档,在打开google doc url时,我需要将访问令牌作为查询参数或作为请求标头(“授权”标头)传递。

我尝试使用授权标头并使用 HttpWebRequest 对象打开谷歌文档 url,但我没有正确打开文档页面。

aspx 文件中的代码

htmlBuilder.AppendFormat("<iframe src='ShowFiles.ashx?url={0}' id='myFrame' name='myFrame' width='100%' height='100%' marginheight='0' frameborder='0'></iframe>", urlLink);

通用处理程序 (ShowFiles.ashx) 文件中的代码

// get the UrlLink from the Query Parameter (url) 
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(urlLink);
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like 
                               Gecko) Chrome/27.0.1453.116    Safari/537.36"; 
myHttpWebRequest.Headers.Add("Authorization", "Bearer " + accessToken); 
string pageContent = string.Empty; 
HttpWebResponse HttpWResp = (HttpWebResponse)myHttpWebRequest.GetResponse();
if (HttpWResp != null)
{
    StreamReader sr = new StreamReader(HttpWResp.GetResponseStream());
    pageContent = sr.ReadToEnd();
}
context.Response.ContentType = HttpWResp.ContentType;
context.Response.Write(pageContent);

浏览器确实打开了谷歌文档,但是一旦打开它就一直说“正在尝试连接到谷歌”并且它一直弹出警报说“服务器没有响应”

所以我尝试使用访问令牌作为 URL LINK 的查询参数,但这似乎根本不起作用。例如:urlLink = " http://google.docs.com/myDoc/myFile?access_token=fsdfsfsq4334234_df

并将此 url 设置为 iframe src

<iframe src=urlLink>

这根本不起作用......

我知道,如果在同一个浏览器中我登录到我的谷歌帐户,我有这个谷歌驱动器文档(在另一个选项卡中),然后在我的网络应用程序中没有这个访问令牌,我的 iframe 完美加载谷歌文档,只需提供文档网址喜欢

http://google.docs.com/myDoc/myFile">

我尝试使用 jQuery ajax 从客户端打开 url,然后 google doc 被打开,但变为只读。

var jqXHR = $.ajax({
            async: true,
            url: url,
            type: 'GET',
            xhr: function () {
                var xhr = new window.XMLHttpRequest();
                return xhr;
            },
            beforeSend: function (xhr) {
                if (xhr != null)
                    xhr.setRequestHeader("Authorization", "Bearer " + token);
            }
        });

        jqXHR.done(function (data, textStatus, xhr) {
            $("#myFrame").contents().find("html").html(xhr.responseText);
        });

谁能帮助我在我的网络应用程序的 IFRAME 中正确显示这个谷歌文档(在编辑模式下)

4

1 回答 1

0

我认为谷歌文档使用 HTTPS,这意味着你不能在你的网站上嵌入 HTTPS 网站。我之前尝试使用具有 HTTPS 或 ssl 证书的 iframe 嵌入网站,所以我得出了这个结论。

于 2013-06-26T01:36:47.830 回答