如何使用jquery或ajax获取外部html页面的内容

11 浏览
0 Comments

如何使用jquery或ajax获取外部html页面的内容

有个朋友今天问了我一个问题,整天都困扰着我。我已经搜索了许多论坛,寻找正确的方法来获取外部HTML内容并在我的页面上显示出来。

我想访问http://www.someExternalURL.com,并从这个页面中获取所有的HTML内容。

我尝试了以下方法:

$.ajax

({

url: "http://www.someExternalURL.com",

type: "GET",

cache: false,

crossDomain: true,

data: {},

jsonp: 'jsonCallback',

dataType: "jsonp",

success: function (data) {

alert('good');

jsonCallback = data.Result;

},

error: function (e) {

alert(e.responseText);

}

});

但是没有成功。

然后我尝试了:

var all;

$.get("http://localhost:60939/About.aspx", function (my_var) {

alert(my_var);

});

只是后者只适用于本地页面。并且我需要一个外部的页面。

非常感谢任何帮助。提前谢谢。

0
0 Comments

有多种方法可以实现这一目标,使用服务器端代码可以比JavaScript少用几行代码。使用PHP可以这样做:


或者使用Perl可以这样做:

#!/usr/bin/perl -w
use strict;
use warnings;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->get("http://www.google.com");
my $content = $mech->res()->content();
print "Content-type: text/html\n\n";
print "";
print "Perl HTML Parsing";
print "";
print $content;
print "";

关于C#或Python的方法我不太清楚,但是我相信通过快速搜索谷歌你可以找到你需要的结果。

0
0 Comments

如何使用jquery或ajax获取外部html页面内容

在浏览器中,如果某个网站不允许你向外部页面发出请求,那么你就无法获取这些页面的内容。请参考跨域资源共享(CORS)

但是,你可以在服务器应用程序中实现这个功能。

0
0 Comments

问题的出现原因:无法直接使用jQuery或Ajax获取外部HTML页面的内容,原因是外部站点可能不允许跨域请求或返回格式不符合要求。

解决方法:使用JSONP或通过URL代理来获取外部HTML页面的内容。

具体步骤如下:

1. 使用JSONP:只有当外部站点允许时才能使用JSONP,需要对返回的JSON结果进行特殊处理。示例代码如下:

$.getJSON('http://www.EXTERNALSITE.com/json?callback=?', function(data) {
  // 处理返回的数据
});

2. 使用URL代理:在自己的网站上托管一个URL代理,使用cURL或其他方式下载所需内容。示例代码如下:

$.ajax({
  url: 'http://YOURSITE.com/get.php?=http://www.EXTERNALSITE.com/json',
  success: function(data) {
    // 处理返回的数据
  }
});

以上是目前提供的两种解决方案。

0