【问题标题】:ajax request to get aliexpress home pageajax请求获取速卖通首页
【发布时间】:2018-02-27 19:24:52
【问题描述】:

两天时间试图通过简单的 ajax 请求访问 aliexpress.com 主页但没有运气,这并不像我预期的那样容易。

有关访问策略和来源问题的所有错误。

任何机构都可以给我 jquery ajax 代码来做到这一点。

我的代码

  function setHeader(xhr) {
     xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
     xhr.setRequestHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
    }
    //url: 'https://www.aliexpress.com',

    function getHomePage() {
        $.ajax({
            url: 'https://www.aliexpress.com',
            type: 'GET',
            callback: '?',
            data: '',
            datatype: 'text/html',
            contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
            crossDomain: true,
            success: function (data) { alert(data); },
            error: function () { alert('Failed!'); },
            beforeSend: setHeader
        });

    } //end getHomePage

致电:

getHomePage();

错误:

【问题讨论】:

  • 发出请求的目的是什么?实施 CORS 政策是有原因的。
  • cross domain jquery get的可能重复
  • @Boaz 该项目是一个中转店,收集多家店铺的产品。
  • @Boaz 我尝试了几种关于 CORS 的解决方案,但在我的情况下这些都不起作用。
  • 寻找现有的速卖通 API。在大多数情况下,抓取不是一个可行的解决方案。

标签: jquery ajax aliexpress


【解决方案1】:

从错误信息来看,单靠 jQuery 是帮不上忙的。您必须考虑 JavaScript 的 Same origin policy。您可能需要考虑在您的域中创建代理脚本。

代理看起来像这样:/get_ali_express.php

<?php
    echo file_get_contents("https://www.aliexpress.com");
?>

还有 js:比如 /index.html

<script>
    function getHomePage() {
        $.ajax({
            url: '/get_ali_express.php',
            type: 'GET',
            success: function (data) { alert(data); },
            error: function () { alert('Failed!'); }
        });
    } 
</script>

【讨论】:

    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    相关资源
    最近更新 更多