jQuery跨域aAax插件无法与facebook.com一起使用

时间:2011-08-21 03:04:50

标签: jquery

我不知道为什么,但是当我这样做时:

$('body').load("http://facebook.com/");

它在控制台日志中返回:

  

错误:data.results [0]未定义

但如果我这样做:

$('body').load("http://google.com/");

它工作正常。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

看起来Yahoo API尊重robots.txt约束。如果您转到下面的网址,则会看到错误消息“重定向到robots.txt受限制的网址:http://www.facebook.com

YQL Result

答案 1 :(得分:0)

尝试从远程域加载数据违反了同源策略。您可以在http://en.wikipedia.org/wiki/Same_origin_policy了解有关此内容的更多信息。

简而言之,出于安全原因,浏览器不允许您使用当前所在域之外的域执行AJAX调用。这种限制有一些解决方法,例如服务器端代理(http://developer.yahoo.com/javascript/howto-proxy.html)和JSONP(http://en.wikipedia.org/wiki/JSONP)。也许这些技术中的一种可以帮助您。