2012-07-26 42 views
1

我需要提供一個Web服務,我的客戶可以在他們的網站上使用AJAX。由於XSS阻止,他們無法呼叫我的Web服務。客戶端無法創建代理來訪問我的Web服務。如何在我的服務器上使用該服務器上的後端並在其他網站上使用後創建JavaScript?

我想在我的服務器上製作一個JavaScript庫,它們可以包含在他們的網站中,然後調用服務器上的Web服務。不知何故,它似​​乎沒有工作。

服務器位於Google App Engine。

所以問題是:如何在我的服務器上使用該服務器上的後端和遠程用戶可以使用它的JavaScript庫?很像谷歌地圖js API的作品?

+0

你提供的任何JS都將被包含到他們的環境中 - 它不會有任何額外的權限。 Google地圖集成通過JSON-P工作,這是跨域AJAX無法實現的標準解決方案。 – Utkanos 2012-07-26 17:23:01

回答

1

您應該使用Cross Origin Resource Sharing來代替,只需爲您的Web服務設置CORS http標頭即可。

Access-Control-Allow-Origin: http://clientsite.com http://client.website.com 

相同的來源策略依賴於文檔來源,因此提供JavaScript庫不會有幫助。

0

兩種可能性:

  • 有你的JavaScript庫中創建一個iframe指向你的服務器。通過您所在瀏覽器的最佳跨頁面通信,在該iframe和第三方網站中運行的代碼之間進行通信。 Google的Closure庫有一個名爲CrossPageChannel的類,對此非常有效。將大部分邏輯放在iframe中。這可能很好,因爲它會阻止第三方網站執行任何不通過iframe邊界傳遞的消息所定義的內容。

  • 使用JSONP從服務器獲取數據並保留JavaScript庫中的所有邏輯。

相關問題