【问题标题】:I want to load the page using the external url without iframe or object我想使用没有 iframe 或对象的外部 url 加载页面
【发布时间】:2014-12-05 05:51:27
【问题描述】:

我想从没有 IFrame 或对象的 div 中的外部 url 加载页面,我需要另一种方式。谁能帮我吗。

仅当我使用 iframe 或对象时才有效。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>Test page</title>
    <script src="https://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script>
      $(document).ready(function() { 
        $("#siteloader").load( "https://www.w3schools.com" );
      });
    </script>
  </head>
  <body>
    <div id="siteloader"></div>​        
  </body>
</html>

【问题讨论】:

  • 好吧,您已经为此使用了.load()。只需用$(document).ready(function() { your code }); 换行即可
  • 即使它不工作 - 摄政
  • 我错过了 external 这个词。出于安全原因,您无法从其他域加载页面。
  • 它是跨域请求。您需要启用 CORS。
  • 由于浏览器的安全限制,大部分“Ajax”请求都遵循同源策略;请求无法从不同的域、子域、端口或协议成功检索数据。 api.jquery.com/load

标签: javascript jquery html jquery-ui jquery-plugins


【解决方案1】:

正如@DefyGravity 在this post about embedding pages 中的评论所建议的那样,出于安全目的,该站点(在这种情况下为w3schools.com 需要允许您的站点访问内容。

如果您可以访问将要访问的外部站点,则可以将 Origin: http://requestSite.com 标头发送到 http://w3schools.com,但 w3schools.com 必须发回 Access-Control-Allow-Origin: http://requestSite.com 标头,但仅此而已我知道这是可能的唯一方法(只有当您可以访问要加载的其他站点的服务器时)。

查看这个jsfiddle的控制台输出,支持我上面的理论:http://jsfiddle.net/ctnopep3/

【讨论】:

  • 我们可以通过任何其他方式获取 url 并在没有 iframe 或对象的情况下显示内容。
  • 是的,这就是我要向您指出的@Jagadeesh。如果您查看控制台输出(浏览器中的开发人员工具),您会看到收到 XmlHttpRequest 错误,因为没有发送 Access-Control-Allow-Origin 标头。
  • 没有一个是微不足道的......没有其他我知道的
  • 感谢您的帮助。
【解决方案2】:

也许你想试试CURLNokogiri

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2011-06-04
    • 2013-02-06
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多