2009-06-04 73 views
1

在跨站點XHR API變得廣泛支持之前,通過JavaScript製作跨站點請求的最佳方式是什麼?我一直在使用iFrame,但那些可能會有點混亂。有沒有更好的辦法? (更好,我的意思是更容易處理。)使用JavaScript製作跨網站請求的最佳方法?

此外,我更喜歡看到純JavaScript代碼,而不是像jQuery等框架。我使用我自己的迷你框架,我不想看看他們是怎麼做到的。

編輯:我忘了提及,我沒有控制目標服務器,所以我不能使用動態<script>標記方法。

回答

4

我知道有兩種常見的方式。一種是在你的服務器上使用代理,基本上是一個爲你讀取數據的php文件。

另一個是使用動態腳本標記。這裏更多的信息:這個幻燈片

http://www.hunlock.com/blogs/Howto_Dynamically_Insert_Javascript_And_CSS

第9頁也有一些信息:

http://bulletproofajax.com/workshop/slides/04formats.html

+0

我無法控制目標的服務器,所以第二種方法不起作用。但代理方法+1,沒有考慮到這一點。 – 2009-06-04 01:49:21

+0

不要嘗試一些黑客的東西,使用代理。如果您擔心某人使用代理服務器不好,請儘可能將其鎖定,以便它只能獲得您需要的代理服務。 – epascarello 2009-06-04 02:55:36

0

如果你想抓住的數據是JSON,看看JSONP。它通過將<script>標記注入到引用遠程服務器上的腳本的DOM中起作用。另一端的服務器返回一些調用數據的「回調」函數的json/javascript樣式響應。基本上遠程腳本將看起來是這樣的:

callbackfunc({'somedata':'testing'}); 

哪裏callbackfunc是你在你的腳本中定義的功能。