0

我是新手,我正在開發一個使用分佈式資源的應用程序。HTML5中的交叉文檔消息如何真正克服適用於XMLHttpRequest的同源策略?

我有一臺服務器稱爲供應到模板和Ajax應用程序相關的一切「表示服務器」(CSS,圖片,JS,...)

第二個服務器只對服務的原始數據(讓的說時,你發送一個「GET/resources/a-resource」,它返回「text/plain,'abc'」),實際上我正在設備上開發一個嵌入式RESTful接口。

我有一個客戶端連接到第一臺服務器,下載模板。然後,ajax代碼從第二個服務器檢索原始數據,並使用該模板呈現給用戶。

我知道我在這裏有一個跨域的問題。我也知道一些當前的解決方案,如jQuery或腳本標記。

我真正關心的是HTML5的交叉文檔消息傳遞功能。但我發現的僅僅是,他們打開了兩個窗口(一個窗口+一個Iframe或一個窗口+一個窗口)並在彼此之間傳遞消息。

它不是真的像向其他人發送「GET」並處理返回的數據,如XMLHttpRequest。

請讓我看看HTML5中的跨文檔消息傳遞如何真正解決我的問題。

**總之,我的痛苦在於XMLHttpRequest確實向其他源發送了一個GET,但是跨文檔消息傳遞沒有(正如我所知),我漫步如果帶有跨文檔消息的HTML5能夠做爲XMLHttpRequest發送GET到其他域或不

我真的非常感謝你。

回答

0

但是我發現了什麼是正義的,他們打開兩個窗口(窗口+ iframe或窗口+窗口),並相互之間傳遞消息。

這是不正確的。您可以在文檔中包含多個iframe,每個iframe都來自不同的域,並且它們都可以發佈和接收來自對方的消息。所以你不需要把頁面放在完全獨立的窗口中。

此外,由於您同時控制了演示文稿和API服務器,因此您可以將API服務器上的Access-Control-Allow-Origin標頭設置爲僅接受來自演示服務器的客戶端。這將允許您像平常一樣使用AJAX。

+0

是的,我不關心IFrame,因爲我只是想知道如何發送一個GET到我的API服務器,IFrame +交叉文檔消息不能解決GET。這是我的觀點。 – nhong

+0

另外,像你說的,它不是HTML5 +跨文檔消息解決問題的權利?所以它不能解決我的問題,我不得不忘記HTML5 +其愚蠢的跨文檔消息的東西? – nhong

+0

我已經閱讀過你的推薦,如果它適用於其他網絡瀏覽器,我也會漫步嗎?像Chrome或IE或Safari? – nhong