使用jQuery跨域 - 在子域上

时间:2010-08-23 09:01:52

标签: jquery cross-domain

我有一个iframe,想要从iframe中的页面获取一些HTML,或者有机会使用jQuery更改iframe页面上的HTML。

我使用此代码从iframe获取内容:

$('iframe#iframeBB').contents().find('table').each(function() {
 var at = $(this).attr('summary');
 if (at == "Latest Data") {
    $('table#main').html($(this).html());
 }
});

只要iframe的源位于同一个域,这样就可以正常工作。我的问题是源是在另一个子域。我知道这是违反同源政策的,但是有办法做到这一点吗?

3 个答案:

答案 0 :(得分:1)

如果它是子域名,则必须通过在页面上设置document.domain来让两者都在同一个tld上工作。

document.domain = "yourdomain.com"

答案 1 :(得分:0)

我认为唯一的方法是使用服务器端获取页面的html输出并将其输出到iframe中。

答案 2 :(得分:0)

document.domain解决方案对我没用。但我发现,您可以通过服务器设置Access-Control-Allow-Origin标题来允许跨域访问。

你可以这样做,例如在.htaccess文件中,如果服务器支持它:

  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://REQUESTING.domain"
  </IfModule>