【问题标题】:jQuery to get another sites page content / div contentjQuery 获取另一个站点页面内容/div 内容
【发布时间】:2017-09-09 06:43:49
【问题描述】:

我正在尝试从网站获取一些跟踪信息并尝试使用 loadajax 但我收到以下错误:

XMLHttpRequest 无法加载 http://www.tuffnells.co.uk/PODLookupResults.aspx?__EVENTTARGET=&__EVENTARGU…%24tbDestPostcode=AL15BY&ctl00%24maincontent%24btnDoPODLookup=Search+Again。请求的资源上不存在“Access-Control-Allow-Origin”标头。

我尝试过的:

<div id="tracking"></div>
<script type="text/javascript">
  $(document).ready(function(){
    $("#tracking").load( "http://www.tuffnells.co.uk/PODLookupResults.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATEGUID=7ca82b1d-b722-4cdc-b74a-b338d8577ffa&__VIEWSTATE=&__EVENTVALIDATION=%2FwEdAAevVXD1oYELeveMr0vHCmYPaomE%2FDwQD43eOdzEj3p%2Fm4U4pgxq6tlupSJfQZQBazFFj%2F1LmlGLyHFagz1yHZm8bjowVgAJ8C3e%2B2bVMPt91KjXCHjnAsonQDi2zFSuasUVzpitHiLDCDtiLHCjNCQG4CxrbV5VPFqBeOgs2X52AD%2FEb%2BYR%2BEJ68PaN2CiyKzE%3D&ctl00%24ctl16%24tbHeaderSearch=Search..&ctl00%24maincontent%24tbAccountRef=01484267&ctl00%24maincontent%24tbConsignmentRef=2837&ctl00%24maincontent%24tbDestPostcode=AL15BY&ctl00%24maincontent%24btnDoPODLookup=Search+Again #ctl00_maincontent_pnlPODRecords" );
  });
</script>

<div id="tracking"></div>
  <script type="text/javascript">
    $(document).ready(function(){
      var url = "http://www.tuffnells.co.uk/PODLookupResults.aspx?__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATEGUID=7ca82b1d-b722-4cdc-b74a-b338d8577ffa&__VIEWSTATE=&__EVENTVALIDATION=%2FwEdAAevVXD1oYELeveMr0vHCmYPaomE%2FDwQD43eOdzEj3p%2Fm4U4pgxq6tlupSJfQZQBazFFj%2F1LmlGLyHFagz1yHZm8bjowVgAJ8C3e%2B2bVMPt91KjXCHjnAsonQDi2zFSuasUVzpitHiLDCDtiLHCjNCQG4CxrbV5VPFqBeOgs2X52AD%2FEb%2BYR%2BEJ68PaN2CiyKzE%3D&ctl00%24ctl16%24tbHeaderSearch=Search..&ctl00%24maincontent%24tbAccountRef=01484267&ctl00%24maincontent%24tbConsignmentRef=2837&ctl00%24maincontent%24tbDestPostcode=AL15BY&ctl00%24maincontent%24btnDoPODLookup=Search+Again";
      $.ajax({
        url:url,
          type:'GET',
          success: function(data){
            $('#tracking').html($(data).find('#ctl00_maincontent_pnlPODRecords').html());
          }
      });
    });
  </script>

有人有什么想法吗?我需要将跟踪详细信息放入我们的跟踪页面,因为它们不提供 API。

【问题讨论】:

  • 除非站点配置为允许跨域请求,否则您无法从您的应用加载任何域。在这里阅读:developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
  • 显然他们不希望您在任何随机的第三方网站上使用他们的数据。也就是说,您可以通过谷歌搜索您的消息错误以获取替代服务器端。但是,如果其他人未经您自己的批准使用您的数据/服务器带宽,您会怎么想?想一想……
  • 您可以尝试从后端删除网站,然后使用 ajax 将其加载到前端。试试simplehtmldom.sourceforge.net
  • Api 用于连接到他们的公司 - 只选择它们,可能会很好 - 他们不会感谢你不断抓取他们的网站 - aftership.com/docs/api/4
  • 谢谢大家检查一下,我确实看过售后但给出了错误但我再看一遍。

标签: javascript jquery html ajax


【解决方案1】:

答案就在眼前!

 No 'Access-Control-Allow-Origin' header is present on the requested resource.

【讨论】:

    【解决方案2】:

    使用 Javascript 是不可能的,请改用 PHP:

        $.ajax({url: 'loadRemoteFile.php', type: 'POST', data: {loadPage: url}, success: function(data){
    doStuff();
    }});
    

    还有你的 PHP 文件:

    if (isset($_POST['loadPage'])){
        echo file_get_contents($_POST['loadPage']);
    

    【讨论】:

    • 它使用的是 Shopify,您认为使用液体模板可以做到吗?
    • 我可以创建一个 php 文件并放置在我们的其他服务器之一上,但是如何传递我想要检索的 url?
    【解决方案3】:

    我发现link 我认为这可能对你有帮助。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      相关资源
      最近更新 更多