从其他域获取whateverorigin.org的内容

时间:2014-04-03 11:30:21

标签: javascript json same-origin-policy

此请求是否可以逐个或id地指定内容。这段代码是:

$.getJSON('http://whateverorigin.org/get?url=' + 
          encodeURIComponent('http://google.com') + '&callback=?',
          function(data){
            $("#content").html(data.contents);
});

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,这就是我做到的。

我需要获取有关某些网站的whois信息并将其显示在我的网站上。

因为我需要http://megaanswers.com/的whois信息,可以在www.domaininformation.de/whois/megaanswers.com上找到,所以在whateverorigin.org我得到了jsonp请求,如下http://whateverorigin.org/get?url=http%3A%2F%2Fwww.domaininformation.de%2Fwhois%2Fmegaanswers.com (在encodeURIComponent之后)但这包含整个页面,但我只需要在class ="结果"中的页面部分。

现在data.contents将提供整个页面的html代码。现在使用jquery选择具有类结果的元素,并将其html附加到具有id =" target"

的div中

这是最终代码的样子

<div id="target"></div> 
<script>            
                $.ajaxSetup({
    scriptCharset: "utf-8", //maybe "ISO-8859-1"
    contentType: "application/json; charset=utf-8"});

    $.getJSON('http://whateverorigin.org/get?url=' + 
    encodeURIComponent('http://www.domaininformation.de/whois/megaanswers.com') + '&callback=?',
    function(data) {
       var thecontents = data.contents;
       var required = $('.result', thecontents).html(); // select '.result' class in 'thecontents'
       $('#target').html("<pre>" + required + "</pre>");
    });

</script>

希望这有帮助

答案 1 :(得分:0)

由于同源策略

,您无法执行此操作
  

所有现代网络浏览器都对网络连接施加了安全限制

您可以尝试使用代理,请查看此文档http://developer.yahoo.com/javascript/howto-proxy.html

答案 2 :(得分:0)

您可以通过几种解决方案,并在实现目标的过程中遇到几个障碍。主要障碍是Access-Origin安全限制。

  1. 首先解决方案是使用或创建服务器端API,它可以是Java servlet,C#Handler或服务器中的PHP文件。如果您无法访问其他服务器以修改其标头并添加Access-Origin标头,则此功能非常有用。此API将充当代理。在此解决方案中,您可以在API中更具体,并使用一些参数来加载其他网址内容的特定部分,无论它是否具有html或JSON内容。

  2. 另一种方法是将Access-Origin标头添加到服务器,并允许某些特定网址访问该网址的内容,而不会遇到安全限制,这需要您拥有访问服务器。然后,如果你想过滤内容,你应该使用JavaScript。

  3. 如果您有权访问服务器,另一种方法是向服务器添加JSONP支持,这基本上是我们通常绕过Access-Origin安全限制的方式。