0

据我所知,存在不允许您从外部 url 获取内容的跨域限制,为了克服这一点,我们使用服务器端脚本。

我想知道 facebook/google 如何克服这些限制,并使用 javascript 代码设法用这样的简单代码生成他们的like box:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=254277301328504";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

我问这个的原因是因为我正在构建一个虚拟聊天机器人,并希望用户只使用一个简单的 javascript 在他们的站点中生成机器人(在外部域上,他们不必使用服务器端脚本)

谢谢

4

1 回答 1

0

据我所知,存在不允许您从外部 url 获取内容的跨域限制

不是通过“正常”的 XMLHttpRequest。但这并不意味着根本无法加载外部资源。JSONP 将是它如何工作的一个例子。

我想知道 facebook/google 如何克服这些限制

他们在您的页面内创建一个 iframe 元素,并将他们自己域中的文档加载到其中。因此,他们从该 iframe 内的页面与自己的域进行任何通信都没有问题——因为这种通信根本不是跨域的。

于 2012-06-25T09:57:36.197 回答