2012-06-25 46 views
0

據我所知,有跨域的restictions,不會讓你從外部網址獲取內容,爲了克服這一點,我們使用服務器端腳本。javascript get/post跨域限制和facebook /谷歌+像框

我想知道的Facebook /谷歌是如何克服這些限制,並用JavaScript代碼管理產生的樣箱用一個簡單的代碼是這樣的:

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=254277301328504"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

的原因IM問這個是因爲IM構建虛擬聊天BOT和希望用戶只使用一個簡單的JavaScript生成在他們的網站機器人(外部域他們無需使用服務器端腳本)

感謝

回答

0

據我所知,有跨域的restictions,不會讓你從外部URL獲取內容

不通過「正常的」XMLHttpRequest。但這並不意味着外部資源根本無法加載。 JSONP將是它如何工作的一個例子。

我想知道的Facebook /谷歌是如何克服這些限制

他們創建頁面內的IFRAME元素,並從自己的域加載文件到它。因此,他們沒有任何問題,通過該iframe中的頁面與自己的域進行通信 - 因爲該通信根本不是,而是跨域的

+0

所以你在說什麼是調用//connect.facebook.net/en_US/all.js生成iframe? –

+0

嗯,我已經做到了,它的工作原理:-)但現在即時通訊面臨另一個問題...即時通訊調用由php生成的javscript,我想知道原始的HTTP_HOST - 我該怎麼做? –

+0

什麼是HTTP_HOST - 什麼是「原創」? – CBroe