2011-10-26 81 views
3

我有一個新的項目在工作。它將需要服務器到服務器和客戶端到服務器的消息傳遞,就像Facebook API一樣。我在哪裏可以找到關於這個主題的好資源?製作跨域API

的主要問題是:

  • 我們應該更喜歡在「客戶」的網站或腳本使用iframe?
  • 你如何創建握手?無論是在客戶端到服務器和服務器到服務器的代碼?
  • 如何使此過程安全?我如何驗證請求的來源?

我知道這是一個廣泛的話題,但我並不真正熟悉它,而且我希望朝正確的方向前進。

+2

只有客戶機到服務器,或兩者兼得? –

+0

所有的方法:)客戶端到服務器和服務器到服務器。使用該服務開發人員將能夠通過JS和服務器端的調用使用它 – CamelCamelCamel

+1

(在PHP和Ruby,Python和Objective-C的API的)你有沒有看着[acts_as_api](https://github.com/fabrik42/acts_as_api)?如果我在這方面有更多的經驗,我可能會發佈一個完整的答案。 –

回答

0

您可以檢查出Facebook的跨域(XD)源代碼開始被寫入由盧克謝潑德

https://github.com/facebook/connect-js/blob/master/src/core/xd.js

爲了向後兼容,使用閃存對象,以及查詢字符串後,英鎊簽訂技術不支持window.postMessage舊的瀏覽器()

還有一個easyXDM庫,它是開源的,它想彌補瀏覽器的差異,併爲兩者提供簡單的API。 (我在評估過程)

http://easyxdm.net

你基本上鎖定在使用iframe來使跨域請求。安全性是另一個巨大的課題,您也可以檢查http請求,瞭解如何使用第三方域進行身份驗證的stackoverflow,它們使用會話散列和nonce令牌使其通過http進行安全保護。

祝你好運!

+0

404在該鏈接:( –

0

JSONP適用於瀏覽器的跨域請求。它不需要iframe,flash或其他技巧。

瀏覽器僅僅是請求另一個JS腳本。請記住,JavaScript源文件可以跨域獲取。

您可以使用查詢字符串ARGS作爲參數傳遞給API調用。