经过测试和工作
因为http://www.nu.nl不是你的站点,所以可以使用代理的方式做跨域 ,否则会报这种错误:GET
PHP
XMLHttpRequest 无法加载http://www.nu.nl/。Access-Control-Allow-Origin 不允许来源
http://yourdomain.com 。
首先在PHP端的服务器中使用此文件:
proxy.php(更新)
<?php
if(isset($_GET['site'])){
$f = fopen($_GET['site'], 'r');
$html = '';
while (!feof($f)) {
$html .= fread($f, 24000);
}
fclose($f);
echo $html;
}
?>
现在,在使用jQuery的 javascript 端,您可以执行以下操作:
(只是要知道我使用的是prop();
因为我使用的是 jQuery 1.7.2版本。所以,如果您使用的是1.6.x之前的版本,请尝试attr();
改用)
$(function(){
var site = 'http://www.nu.nl';
$.get('proxy.php', { site:site }, function(data){
var href = $(data).find('.hdtitle').first().children(':first-child').prop('href');
var url = href.split('/');
href = href.replace(url[2], 'nu.nl');
// Put the 'href' inside your div as a link
$('#myDiv').html('<a href="' + href + '" target="_blank">' + href + '</a>');
}, 'html');
});
如您所见,该请求在您的域中,但这是一件棘手的事情,因此您不会Access-Control-Allow-Origin
再次收到错误!
更新
如果您想获得href
您在评论中所写的所有标题,您可以执行以下操作:
只需像这样更改 jQuery 代码...
$(function(){
var site = 'http://www.nu.nl';
$.get('proxy.php', { site:site }, function(data){
// get all html headlines
headlines = $(data).find('.hdtitle');
// get 'href' attribute of each headline and put it inside div
headlines.map(function(elem, index){
href = $(this).children(':first-child').prop('href');
url = href.split('/');
href = href.replace(url[2], 'nu.nl');
$('#myDiv').append('<a href="' + href + '" target="_blank">' + href + '</a><br/>');
});
}, 'html');
});
并使用更新proxy.php
的文件(对于这两种情况,1 个或所有标题)。
希望这可以帮助 :-)