如何仅使用jquery ajax访问kippt api



我正试图使用他们的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);
});

我使用jquery 1.9在一个简单的python服务器上处理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,
            ...
        },
        ...
    ]
}

更新:

在我的ajax请求中添加async:false作为一个选项,使我返回了数据。有人知道为什么吗?

我相信您对异步函数使用了与AJAX一样的同步方法。举个错误方法的例子:

var f = function(){
    $.ajax({
        ...
    }).done(function(data){
        console.log('done');
    });
    /* data isn't available yet - data is undefined */
    return data;
};

AJAX函数会立即返回。尽管如此,回应还没有到来。当数据从服务器返回时,done回调将被触发,您应该对此做出反应。

相关内容

  • 没有找到相关文章

最新更新