2013-02-12 3 views
1

Я пишу расширение chrome, которое вводит 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 я ударяя междоменное issues.but, насколько я знаю, расширения могут сделать перекрестные запросы домена, то как это сделать? Пожалуйста, помогите.

ответ

2

Google использует X-Frame-Options заголовок, многие веб-сайты используют их в качестве наилучшей практики

Существуют три возможных значения для X-Frame-Options:

  • Deny страница не может быть отображена в кадре, независимо от того, какой сайт пытается это сделать.
  • SAMEORIGIN Страница может отображаться только в рамке того же происхождения, что и сама страница.
  • ALLOW-FROM uri Страница может отображаться только в кадре с указанным источником.

Google использует SAMEORIGIN Value, поэтому это работает, только если текущая страница http://google.co.in.

Итак, вы не сталкиваетесь с проблемами с перекрестным доменом, и да, вы можете сделать перекрестные запросы домена.

+0

спасибо, он работал с wikipedia.never сомневался, что google.co.in был виновником. – vishesh

Смежные вопросы