求助前端大神, kuaidi100 企业版接口,用 ajax 无法获取数据。

2017-06-15 21:45:06 +08:00
 NobodyVe2x
代码地址: 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);
//var res=JSON.parse(res);
//console.log(res);
},
done: function(d) {
console.log("done")
},
error : function( httpReq, status, exception){
alert(status+";"+exception);
}
});

控制台报错, 但几点报错地址却又能访问到数据。 不知道怎么解决这个问题?
2157 次点击
所在节点    问与答
2 条回复
NobodyVe2x
2017-06-16 13:36:08 +08:00
木有人回答啊 ~~~~
NobodyVe2x
2017-06-16 20:43:43 +08:00
今天找了一天资料,也不知道理解的对不对,想要解决这个问题,有三个解决方案:

放弃直接 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()

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368725

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX