记者:从不同的域的网页负荷的html(js: Load html of a page from a

2019-06-26 05:30发布

我想知道我怎么可以加载HTML,这是在不同的域托管?

我使用的JavaScript,并想创建一个书签,使我解析外部HTML。

我一直在google搜索白白小时...

Answer 1:

JavaScript是不允许做跨域请求。 这是一个很大的安全隐患。 取而代之的是,你必须在服务器上执行一个脚本,并使其返回结果给您的JavaScript函数。

例如,假设你使用JavaScript和PHP,你可以设置应用程序是这样工作的:

JavaScript的发起一个Ajax请求的页面(或脚本)位于服务器上。 它传递任何所需的参数,这个页面。 下面的代码是基于jQuery(为更加简洁的缘故),但原理是一样的,不管你的框架。

var sParameters = " ... " // this is defined by you
$.ajax({
  url: 'your-server-side-code.php',
  processData: false,
  data: sParameters,
  success: function(sResponse) {
    // handle the response data however you want
  }
});

服务器端代码将响应该请求并且沿着必要的参数的跨域网站通过。 PHP的cURL库有利于这一点。

// very contrivuted cURL configuration for purposes of example...
$curl_connection = curl_init();
$str_url = "http://you-url.com";
curl_setopt($curl_connection, CURLOPT_URL, $str_url);
curl_setopt($curl_connection, CURLOPT_GET, 1);
// ... keep setting your options ...
$str_response = curl_exec($curl_connection);
curl_close($curl_connection);

当跨域网站回应,您的服务器端代码可以重复响应返回给初始请求。 这或许应该响应回之前被验证,但它只是一个例子。

print_r($str_response);

然后一个JavaScript响应处理函数可以解析传入响应数据。 注意上面的JavaScript代码的第一个块的成功的功能。



Answer 2:

如果你没有自己的另一页,这将是非常困难的。

事实上,你不能在JavaScript中另一个域的请求。 你能做的唯一的事情就是从另一个域加载脚本:

<script type="text/javascript" src="http://otherdomain.com/script.js"></script>

如果这样做的目的是加载从其他域和数据(正如我说)你自己的其他网站,您可以创建的script.js文件,这将载入您在原始网站所需要的数据。

记住,这是一个微妙的事情,如果你知道会有脚本应该只是做。



Answer 3:

您可以从跨域请求localhost ,但如果你打算这段代码部署到服务器时,它不会去上班。 既然你正在开发一个书签,我认为你可以做到这一点。

你需要使用AJAX来获取远程的HTML。

在jQuery的库使得如此简单这个任务...

$.get("http://www.google.com", function(html) { alert(html); });


文章来源: js: Load html of a page from a different domain