【问题标题】:To get content with whateverorigin.org from other domain从其他域获取包含whateverorigin.org 的内容
【发布时间】:2014-05-15 04:49:55
【问题描述】:

是否可以通过此请求按类或 id 获取指定的内容部分。这段代码是:

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

【问题讨论】:

    标签: javascript json same-origin-policy


    【解决方案1】:

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

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

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

    现在 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>
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      由于同源政策,您不能这样做,

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

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

      【讨论】:

      • 是的,他们可以,OP 正在使用whateverorigin.org ;)
      【解决方案3】:

      你有几个解决方案,也有几个障碍来实现你想要的。主要障碍是Access-Origin 安全限制。

      1. 第一个解决方案是使用或创建服务器端 API,它可以是 Java servlet、C# 处理程序或只是服务器中的一个 PHP 文件。如果您无权访问其他服务器以修改其标头并添加 Access-Origin 标头,这可能很有用。此 API 将用作代理。在此解决方案中,您可以更具体地使用 API,并使用一些参数仅加载其他 url 内容的特定部分,无论它是 html 还是 JSON 内容。

      2. 1234563然后,如果您想过滤内容,您应该使用 JavaScript。
      3. 如果您可以访问服务器,另一种方法是向服务器添加JSONP支持,这基本上是我们通常绕过Access-Origin安全限制的方式。

      【讨论】:

      • 我的请求有效,但显示整个网站.. 没有图像,但我需要按不同的类解析内容
      • @Julia:发生这种情况的原因是它会加载包含所有相对图像路径的 html,例如,如果您以这种方式加载 google 页面,则徽标的 src 属性将是 '/images/srpr/logo11w.png' 并且如果您想要它向您显示谷歌徽标图像,您应该手动解析您的图像并将其更改为'https://www.google.com//images/srpr/logo11w.png'
      猜你喜欢
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2017-01-05
      • 2011-11-29
      • 1970-01-01
      相关资源
      最近更新 更多