0

我正在尝试使用他们的 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.9http://localhost:3501在一个简单的 python 服务器上工作。我没有使用 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 请求的一个选项让我恢复了我的数据。有人知道为什么吗?

4

1 回答 1

1

我相信您正在为异步函数使用同步方法,就像 AJAX 函数一样。对于错误方法的示例:

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

AJAX 函数立即返回。即便如此,回应还没有到来。当done数据从服务器返回时将触发回调,您需要对其做出反应。

于 2013-02-11T12:59:25.287 回答