5

我有一个来自不同域的远程页面的 URL ,我必须下载、解析和更新当前页面的 DOM。我找到了使用new ActiveXObject("Msxml2.XMLHTTP")执行此操作的示例,但我猜这仅限于 IE,并且使用new java.net.URL,但我不想使用 Java。有没有其他选择?

4

6 回答 6

3

相同的域策略会得到你。

1)通过您的服务器代理。浏览器->您的服务器->他们的服务器->您的服务器->浏览器。

2) 使用闪光灯或银光。第 3 方必须授予您访问权限。javascript 和 flash 之间的桥梁不适用于大量数据,并且存在错误。Silverlight 不像闪光灯那样无处不在……

3)使用标签。这真的不安全......只有在第 3 方内容是有效的 javascript 时才有效。

于 2009-08-20T08:14:18.860 回答
2

怎么样通过 AJAX 加载 PHP 脚本file_get_contents()呢?这应该适用于不同的域。如果我理解正确。

于 2009-08-20T08:18:23.640 回答
1

编写一个将为您检索页面内容的服务器端脚本是可行的方法。您可以使用 XMLHttpRequest 对象对该脚本进行 AJAX 调用,该脚本将为您传递所有 html (?)。

不过,我建议不要这样做。我不知道您对其他网站的信任程度,但存在相同的来源政策是有原因的。你到底想做什么?通常,有一种解决方法。

于 2009-08-20T08:28:15.493 回答
0

我不认为你可以根据同源政策的限制来做到这一点。两个使用 iframe 在两个域之间进行通信,我们也可以使用 JS 代码,但两个域都需要在其中包含通信代码。子框架可以联系祖父框架(窗口),但不能在这里。

因为你指的是其他一些网址。

唯一的方法是使用您的服务器端代码来访问另一个域上的内容。

于 2009-08-20T08:55:19.323 回答
-1

只需使用 PHP:

<?php
$url = "http://www.domaintoretrieve.com";

ob_start();
include_once( $url );

$html = ob_get_contents();
ob_end_clean();

?>

$html 包含要根据需要操作的整个页面。

于 2009-10-31T15:41:33.313 回答
-2

XMLHTTPRequest对象在大多数现代浏览器中都很常见,并且是 AJAX Web 应用程序的动力。

于 2009-08-20T08:09:46.903 回答