2014-10-29 199 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