我正在开发一个 .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 中正确显示这个谷歌文档(在编辑模式下)