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