我想在div中加载外部网站,并使其更小,以更恰当地容纳div内部 就像谷歌搜索一样
我试过了:
$("#targetDiv").load("www.google.com");
但它不起作用。
我尝试了iframe,但它仍有2个问题:
不知道我应该使用哪种方法 这是更优化的 或任何其他选择?
答案 0 :(得分:3)
你想做的事情是行不通的。遗憾的是,出于安全原因,不允许JavaScript发出跨域请求(参考:http://en.wikipedia.org/wiki/Same%5Forigin%5Fpolicy)。
如果你创建一个用PHP编写的脚本驻留在提交请求的你自己的服务器上,那可能会有效,但是用户没有有效的会话,并且存在来自另一个站点的URL(链接)的风险如果他们是相对的,那就行不通。
示例:强>
$('#targetDiv').load('load.php?url=www.google.com')
您还可以查看jquery-crossframe。我从来没有使用它,但它声称要做你正在寻找的东西。
最好的选择是使用iframe元素。
答案 1 :(得分:1)
您无法使用jquery加载跨域ajax调用。来自http://api.jquery.com/load/
附加说明: 由于浏览器安全限制,大多数“Ajax”请求都遵循相同的原始策略;请求无法成功从其他域,子域或协议中检索数据。
如果iframe不是一个选项,你可以使用curl通过ajax调用php页面来检索数据。
答案 2 :(得分:1)
弗朗索瓦是正确的,因为您的ajax请求仅限于同一原始政策。这意味着您无法直接从其他网站加载内容。但是,如果您的来源支持JSONP,您可以实现的目标是什么。如果您想专门加载Google搜索引擎结果,请查看Google Custom Search API