2013-02-12 78 views
1

我正在編寫一個chrome擴展,它在open選項卡中注入iframe並在其中加載url。要加載的url與打開的頁面不在同一個域中標籤is.I正在使用下面的代碼:來自Chrome擴展的注入腳本中的跨域請求

--menifest.json-- 

"background" : { 
    "scripts": ["background.js"] 
    }, 
    "permissions": [ 
    "tabs", "http://*/", "https://*/" 
    ] 

--background.js-- 

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.executeScript(null, 
          {file:"logic.js"}); 
}); 

--logic.js-- 

var newdiv = document.createElement('div'); 
var iframe = document.createElement('iframe'); 
iframe.setAttribute('src','http://google.co.in'); 
newdiv.appendChild(iframe); 
document.body.appendChild(newdiv); 

這隻有當CURENT頁http://google.co.in而不是其他pages.So我打問題。但據我所知跨域,擴展可以使跨域請求,那麼怎麼做呢?請幫忙。

回答

2

谷歌使用X-Frame-Options頭,許多網站使用它們作爲最佳實踐

有對X框,選擇三個可能的值:

  • DENY 該頁面無法顯示在一個框架中,不管網站試圖這樣做。
  • SAMEORIGIN 該頁面只能以與頁面本身相同的原點顯示在框架中。
  • ALLOW-FROM uri 該頁面只能顯示在指定原點的框架中。

谷歌使用SAMEORIGIN值,所以這隻適用於當頁面爲http://google.co.in

因此,您沒有遇到跨域問題,並且是擴展可以提出跨域請求。

+0

謝謝,它與維基百科合作。永遠不會懷疑google.co.in是罪魁禍首。 – vishesh 2013-02-12 10:23:11