2012-02-25 113 views
0

我想从其他网站上的元素获取内容。然后,我想将该内容显示在同一台服务器上的另一个网站上。使用jQuery(跨域)从其他网站获取所有内容

我可以通过YQL插件和jQuery获得它,但我只能从某些元素中获取内容,而不是从所有元素中获取内容。

如何从所有元素获取内容?

我被告知必须先使用PHP加载所有内容,然后使用jQuery显示结果。怎么做?

+0

帮助你试过IFrame吗? :) – dbrin 2012-02-25 05:52:26

+0

从来没有听说过吗?它是一个插件吗? – Bayu 2012-02-25 05:53:24

+1

大声笑 - 你让我的一天:) – dbrin 2012-02-25 05:55:30

回答

0

如果您可以选择使用服务器端语言,那么您可以创建代理,让您的代理调用该网站并以xml或json格式将结果返回给您。使PHP文件调用它proxy.php该文件内从跨域获取数据

proxy.php

<?php 
function get_url_contents($url){ 
     $crl = curl_init(); 
     $timeout = 5; 
     curl_setopt ($crl, CURLOPT_URL,$url); 
     curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout); 
     $ret = curl_exec($crl); 
     curl_close($crl); 
     return $ret; 
} 

    $url = “http://www.howtogeek.com”; 
    $str = file_get_contents($url); 

    echo $str; 
?> 

客户端

$.ajax({ 
url:'proxy.php', 
dataType:'text\xml', 
success:function(data){//success handler 
//if the data is in xml format parse it using $.parseXML 
//do something 
}, 
error:function(jxhr){ //error handler 
    console.log(jxhr.responseText); 
} 
}); 

上面的代码仅用于示范目的,我已经从here

+0

谢谢,我会尝试它,让你知道结果后 – Bayu 2012-02-25 06:18:05

+0

好吧,我已经试过了。它不会返回所有内容。结果与YQL一样,只有一些内容被获取。 – Bayu 2012-02-26 07:38:40