最近开发一个项目是关于淘宝平台的,需要调用淘宝的API
其中一个API:http://api.taobao.com/apidoc/api.htm?spm=0.0.0.34.b80593&path=cid:1-apiId:2
我看了API用过http,js两种方式尝试调用,都没有返回结果值。
其中我在用http的方式时候,按照淘宝规定的url来构造参数时,用 jquery ajax请求时候没有返回结果,当我把请求的地址在地址栏中输入时,可以显示返回结果,我就不知道这到底是怎么回事了。
希望有做过淘宝api调用的高手能给一个完整调用的DEMO,最好能用js通过http调用的例子,感谢。
测试的账户名是淘宝任意一个商家的呢称(非商城用户) 我用的是名称是:西米虫
我就是按照这个调用示例构造的http url,但是返回结果没有 代码如下
requestTaobao = function () {
var url2 = "http://gw.api.taobao.com/router/rest?";
url2 += "sign=B2FCC60B64DA8524466B2FA791E31A1F&";
url2 += "timestamp=2012-09-27 18:37:34&";
url2 += "v=2.0&app_key=12129701&";
url2 += "method=taobao.users.get&partner_id=top-apitools&";
url2 += "format=json&nicks=西米虫&";
url2 += "fields=user_id,nick,sex,buyer_credit,seller_credit,location,created,last_visit";
$.ajax({
async: true,
type: "GET", //使用Post方法访问后台
dataType: "html", //返回json格式的数据
contentType: "application/x-www-form-urlencoded",
url: url2, //要访问的后台地址
data: {}, //要发送的数据
complete: function () { }, //AJAX请求完成时
success: function (data) {
debugger;
var ret = data.d;
}
});
@zhongweis:
timestamp参数要求是实时的,之前似乎有看到过是允许一定的误差,如果超过一定范围就会有问题。
@zhongweis:
http://gw.api.tbsandbox.com/router/rest?sign=12A1AAE5162A14382E124D9D8FC3D71E×tamp=2012-09-28+19%3A10%3A20&v=2.0&app_key=1012129701&method=taobao.users.get&partner_id=top-apitools&format=xml&nicks=%E8%A5%BF%E7%B1%B3%E8%99%AB&fields=user_id,nick,sex,buyer_credit,seller_credit,location,created,last_visit
@zhongweis:
上面是官方测试工具自动生成的GET调用链接,你可以跟你的对比一下
@狼Robot: 我把构造好的地址直接敲进浏览器地址栏里可以返回结果,ajax请求就不行?不知道是什么原因。
@zhongweis: 抓包看了一下,jQuer请求是发送出去了,并且有返回数据,但是jQuery没有解析出来,你可以看看是什么原因导致的。
@狼Robot: 我用firefox都没有看到数据,你都能看到返回数据,很强。对这个我实在无语了,谁能给个Demo 我演示过了,我这豆都送他了。
@zhongweis:
我用的chromium,然后抓包是可以看到数据
其实一直都忽略了一个问题,js是不允许跨域访问的。