我正在尝试使用their api访问我的kippt书签。
api看起来很简单,我可以在终端上执行curl
请求。但是当我在浏览器中尝试使用jquery ajax进行跨域jsonp请求时,出现401 UNAUTHORIZED
错误。
这是我的代码:
var authconfig = {
api_url: 'https://kippt.com/api/',
username: 'amit_e',
password: '*****'
}
$.ajax({
url: authconfig.api_url + 'lists',
username: authconfig.username,
password: authconfig.password,
dataType: 'jsonp',
async: false,
type: 'GET'
}).done(function(data){
console.log(data);
}).fail(function(jqXHR, textStatus, errorThrown){
console.log(errorThrown);
});
我在一个简单的python服务器上使用jquery 1.9在http://localhost:3501
上工作。我没有使用jsonp的经验。所以请帮我把json数据拿回来。返回的数据应如下所示:
{
"meta": {
"limit": 20,
"next": "/api/clips/?limit=20&offset=20",
"offset": 0,
"previous": null,
"total_count": 33
},
"objects": [
{
"id": 15,
...
},
...
]
}
更新:
添加async:false作为我的ajax请求的选项让我恢复了我的数据。有人知道为什么吗?
答案 0 :(得分:1)
我相信你正在使用同步方法来实现异步函数,就像AJAX一样。举个错误方法的例子:
var f = function(){
$.ajax({
...
}).done(function(data){
console.log('done');
});
/* data isn't available yet - data is undefined */
return data;
};
AJAX函数立即返回。尽管如此,答案尚未到来。当从服务器返回数据时,将触发done
回调,您将对其做出反应。