用 ajax 无法获取kuaidi100企业版物流数据

  • flask
  • 491 次点击

代码地址: http://pan.baidu.com/s/1jIigegu

$.ajax({ 
    url: "https://poll.kuaidi100.com/poll/query.do", 
    type: "post", 
    dataType: "jsonp xml", 
    crossDomain: true, 
    jsonp: false, 
    data: "param=%7B%22com%22:%22yunda%22,%20%22num%22:%223839952036097%22%7D&customer=F1D84470F22E2436305F22E374A94B41&sign=54D0F4D61F5304DDD6667BCD0A018AA8", 
    contentType: "application/json; charset=utf-8", 
    async: false, 
    success : function(res){ 
        console.log("on_succeed") 
        console.log(res); 
    }, 
    done: function(d) { 
        console.log("done") 
    }, 
    error : function( httpReq, status, exception){ 
        alert(status+";"+exception); 
    } 
}); 

控制台有报错:Uncaught SyntaxError: Unexpected token :但是鼠标点击报错的地址,却又能拿到真实数据, 求大神帮忙! 给红包奖励。

  • 4 条回复 | 3 人参与
  • 虽然我不懂,但是看你的错误提示,代码有语法错误。

  • flask # 2

    @追梦人物 哈哈哈 没事,等前端大神帮解决。

  • flask # 3

    今天找了一天资料,也不知道理解的对不对,想要解决这个问题,有三个解决方案:

    放弃直接js ajax方式获取数据, 在自己的服务器端获取数据,然后再用自己的ajax接口转发数据 修改poll.kuaidi100.com 服务器支持jsonp类型ajax调用,需要服务器处理callback参数。 修改poll.kuaidi100.com 服务器将跨域访问限制取消掉,设置 Access-Control-Allow-Origin:* 。 目前就想到了这么多, 也不知道理解有没有错误,暂时选择方案1解决问题。

    服务器代码如下:

    import requests

    def kd100_request(): pa = 'param={"com":"yunda", "num":"3839952036097"}&customer=F1D84470F22E2436305F22E374A94B41&sign=54D0F4D61F5304DDD6667BCD0A018AA8' req = requests.post("https://poll.kuaidi100.com/poll/query.do", params=pa, verify=False)

    return req.json()
    

    print kd100_request()

  • 建议代码放gist

添加一条新回复
登录 或者 注册 后发表回复