2013-06-25 30 views
0

我正在研究一個.net應用程序,它允許用戶將Google文檔鏈接附加到應用程序並從應用程序本身查看/編輯它們。我使用Iframe將Google文檔嵌入到我的應用程序中。在ASP.Net中的IFRAME中顯示Google Doc應用程序

由於谷歌文檔嵌入應用程序應該離線發生,我使用來自Google API的訪問令牌來獲取URL和顯示。 Iam在這方面有顯示問題。

我已經完成了所有與獲取根據Google API文檔「脫機」打開Goog​​le文檔所需的訪問令牌相關的所有內容。根據google api開發者文檔,在打開google doc url時,我需要將訪問令牌作爲查詢參數或作爲請求標頭(「授權」標頭)傳遞。

我嘗試使用認證頭,並打開使用HttpWebRequest對象的谷歌文件的網址,但我不明白的文檔頁面正確打開..

代碼在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

並將此網址到IFRAME SRC

<iframe src=urlLink> 

這並不在所有的工作......

我知道,如果在同一個瀏覽器我登錄到我在那裏我有這個谷歌驅動文件(在另一個標籤)谷歌賬戶,然後在沒有這個訪問令牌我的web應用程序,我的iframe裝載谷歌文檔完美,只是通過給文件的網址類似

^h ttp://google.docs.com/myDoc/myFile「>

我試圖從客戶端使用jQuery ajax打開網址,然後google文檔打開,但成爲只讀。

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); 
     }); 

誰能幫我在我的web應用程序

回答

0

內的IFRAME正確地得到這個谷歌文件顯示(在編輯模式下),我認爲谷歌文檔使用HTTPS,這意味着你不能嵌入HTTPS你的網站。我嘗試過使用帶有HTTPS或SSL證書的iframe嵌入網站,所以我跳到了這個結論。

+0

如果這是我在一個選項卡登錄到Gmail帳戶,並在另一個選項卡中打開我的web應用程序的話,那麼,我能夠設置IFRAME SRC到Google Docs和它得到正確和IAM能夠編輯所顯示的文件 – devi

相關問題