2014-10-29 204 views
0

我有一個要求,我必須從源域以外的域加載DIV中的內容。使用JQuery加載/ ajax從其他域加載DIV內容

如:

$("#myDiv").load("https://www.google.com") 

現在,在上面的例子中,我想谷歌頁面內容加載到我的JSP覈實。

現在,問題是請求被阻止,因爲瀏覽器的同源策略。

我已經通過一些解決方案在服務器設置標題。但是我不想在這種情況下更改標題,因爲這可能會影響我的應用程序的其他方面。

此外,像YQL這樣的解決方案可能無法正常工作,因爲我不會因爲安全問題而對其他位置進行java腳本/ ajax調用。

我目前在尋找library/api/workaround或任何可以解決我的問題的開源解決方案。

P.S:我與servlets and JSP

工作任何建議/解決方案請。

非常感謝。

+3

從您的Web服務器上的第三方獲取它們而不是客戶端瀏覽器,並從您自己的服務器返回內容。那時限制不適用。例如您可以編寫一個簡單的服務來返回指定URL的HTML。 (注意:這不會給你使用第三方內容的權利) – 2014-10-29 11:43:34

回答

0

如果源域是你的,或者你可以改變返回值,那麼你可以用數據類型jsonp做jquery ajax調用。如果您無法訪問源域,則由於安全原因,這是不可能的。 作爲另一種解決方案,我們可以使用小型代理來管理請求和響應,但您應該有權訪問源域。

看看這個, enter image description here

代理可以與服務器2 comunicate沒有,因爲這是在同一個域中的任何限制。您可以在代理中實現適當的界面,以允許與外部服務器或客戶端(如server1)進行通信。使用這種模式,您不需要更改服務器2.

+2

我很確定他不擁有'www.google.com' :) – 2014-10-29 11:48:44

+0

@nishan你可以請進一步闡述「小型代理管理請求和迴應」。 – Chakri 2014-10-29 12:40:21

+0

謝謝尼山 – Chakri 2014-11-05 11:55:37