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

Posted

技术标签:

【中文标题】如何使用 jquery 或 ajax 获取外部 html 页面内容 [重复]【英文标题】:How to get external html page content using jquery or ajax [duplicate] 【发布时间】:2014-01-11 15:58:16 【问题描述】:

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

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

任何帮助将不胜感激。

提前致谢

【问题讨论】:

你也可以使用cURL 是否一定要用jQuery,因为可以使用1行php显示外部网页? 我在这里写了这个问题的答案:Loading cross domain html page with jQuery AJAX 【参考方案1】:

有很多方法可以做到这一点,使用服务器端代码将比 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>";

【讨论】:

我不了解 C# 或 Python,但我确信通过 Google 快速搜索它们会产生您正在寻找的结果。【参考方案2】:

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

【讨论】:

【参考方案3】:

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

您可以使用托管在您网站上的 url 代理,该代理使用 cURL 或任何方式来下载所需内容,例如

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

【讨论】:

目前只提供真正的解决方案

以上是关于如何使用 jquery 或 ajax 获取外部 html 页面内容 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

AJAX / jQuery发布或获取

将 PHP 数组传递给外部 jQuery $.ajax

如何应用 jQuery 动态加载的内联和/或外部 CSS

使用 JQuery 从外部源获取 XML

用jQuery的ajax获取接口数据

如何使用外部 AJAX 调用检索数据表过滤器?