2011-11-17 72 views
0

因此,我正在開發一個Sencha(Javascript)應用程序,該應用程序需要將Ajax http請求發送到已經在不同域上的REST服務。我需要一個解決方案,以便能夠將Sencha javascript的POST,PUT和GET請求發送到該服務。我無法控制該服務,因此我無法對此進行任何更改。我聽說過HTML5的新postMessage()方法,但我不確定如何使用,或者我甚至能夠使用它來做我想做的事。當然,我可以在開發過程中禁用瀏覽器安全性,但這不是一個永久的解決方案。有什麼建議麼?如何在Javascript中執行跨域http請求?

特別是,如果有人能告訴我postMessage方法的用法,我將非常感激。

+0

跨域請求是不可能的,特別是如果您無法更改其他服務的任何信息。當然,如果你使用的是PhoneGap之類的東西,那完全是另一回事了。在這種情況下,你可以做任何你想做的事情。 – Pointy

回答

1

如果響應是JSON,則可以使用JSONP。如果您發佈,請使用隱藏的iframe。

+0

瞭解使用隱藏iframe的好教程嗎? – Groppe

+0

這很簡單 - 給iframe和name,將表單的目標設置爲iframe。該網址將成爲其他網域的POST網址。你可以附加一個onload事件到iframe,告訴你你的帖子何時完成。將iframe留下來進行測試,然後在完成後將高度和寬度設置爲零。 –

0

您可以使用serverSide代理(PHP,servlet ....)來發送您的跨域請求,將響應拉出,然後將結果返回給客戶端的JavaScript。