如何使用 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 页面内容 [重复]的主要内容,如果未能解决你的问题,请参考以下文章