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

时间:2013-12-23 12:18:30

标签: javascript jquery html ajax

有一个朋友今天问我这个问题,整天都在困扰着我。我已经开辟了数十个论坛,寻找正确的方法获取外部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);
}

只有后者才适用于本地页面。 我需要一个外部

非常感谢任何帮助。

提前致谢

3 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点,使用服务器端代码可以在比JavaScript更少的行中实现这一目标。

使用PHP可以使用:

<?
    $url = 'http://www.google.com';
    echo file_get_contents($url);
?>

或者使用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 "<html><head>";
print "<title>Perl HTML Parsing</title>";
print "</head><body>";
print $content;
print "</body></html>";

答案 1 :(得分:2)

如果该网站不允许您这样做,则无法向浏览器中的外部网页发出请求。见Cross Origin Resource Sharing 但您可以在服务器应用程序中执行此操作。

答案 2 :(得分:1)

只有在外部站点允许的情况下才能使用JSONP,方法是对JSON结果的返回方式进行特殊实现。

您可以使用您网站上托管的网址代理使用cURL,或以其他方式下载所需内容,例如

http://YOURSITE.com/get.php?=http://www.EXTERNALSITE.com/json