1. 本接口采用的是聚合数据接口:https://www.juhe.cn/docs/api/id/43

2. 首先,注册账号申请快递单号接口:获取申请的key
快递物流查询接口API,ajax跨域根据单号查询物流跟踪的详细信息详细说明。

3. 接口所需参数查看(主要是这三个需要传到服务端)https://www.juhe.cn/docs/api/id/43

快递物流查询接口API,ajax跨域根据单号查询物流跟踪的详细信息详细说明。

4. 实现代码(经测试直接访问获取不到数据,因为服务端没有主动设置开放CROS资源共享)

4.1. 使用原生ajax请求(经测试直接访问获取不到数据,因为服务端没有主动设置开放CROS资源共享)浏览器会默认同源策略,所以访问失败。

<script>
    function fn(obj){
        console.log(obj);
    }
    //商户key
    var key = "870967b6f718e99ceda764f1829c1763";
    //快递单号
    var kdNumber = "3383748328872";
    //快递物流公司简称
    var com = "sto";
    var xhr = new XMLHttpRequest();
    xhr.open('get','http://v.juhe.cn/exp/index?key='+key+'&com='+com+'&no='+kdNumber);
    xhr.send();
    xhr.onload = function(){
        xhr.responseText;
    };
</script>

快递物流查询接口API,ajax跨域根据单号查询物流跟踪的详细信息详细说明。

4.2 使用跨域访问请求,传参数 callback 设置一个自定义的fn函数(进行测试可以访问拿到数据)

<script>
    function fn(obj){
        console.log(obj);
    }
    //商户key
    var key = "870967b6f718e99ceda764f1829c1763";
    //快递单号
    var kdNumber = "3383748328872";
    //快递物流公司简称
    var com = "sto";
    var script = document.createElement('script');
    script.src = 'http://v.juhe.cn/exp/index?key='+key+'&com='+com+'&no='+kdNumber+'&callback=fn';
    document.head.appendChild(script);
</script>

快递物流查询接口API,ajax跨域根据单号查询物流跟踪的详细信息详细说明。

  1. 一般接口数据不是特别重要的接口服务端都会开发CROS,可以直接通过ajax不跨域直接获取服务端的返回数据。
  2. 如果服务端没有设置CROS,ajax不同源就不能获取到数据,此时就可以采用接口的callback参数用跨域解决获取服务端的返回数据。
  3. 如果两种都不能获取,可以采用本地服务器直接访问接口服务器,不经过浏览器,就不会存在浏览器拦截跨域请求问题,把拿到的数据在返回给浏览器就可以实现(原理类型翻墙v*n)。

5. 查看聚合数据支持的哪些快递公司的查询:https://www.juhe.cn/box/index/id/43(部分参考)

相关文章: