Javascript 错误函数正在处理成功的JQuery ajax响应

Javascript 错误函数正在处理成功的JQuery ajax响应,javascript,jquery,ajax,response,Javascript,Jquery,Ajax,Response,我有以下片段: function unshortBitlyLink (link, callback) { var url = 'https://api-ssl.bitly.com/v3/expand?access_token=' + API_TOKENS.BITLY + '&shortUrl=' + link.href; $.ajax({ url: url, type: 'GET', dataType: 'json',

我有以下片段:

function unshortBitlyLink (link, callback) {
    var url = 'https://api-ssl.bitly.com/v3/expand?access_token=' + API_TOKENS.BITLY + '&shortUrl=' + link.href;

    $.ajax({
        url: url,
        type: 'GET',
        dataType: 'json',
        success: function (data) {
            debugger;

            var url = data.data.expand[0].long_url;
            setLinkText(link, url);
            if (callback) callback(url);
        },
        error: function (response, message) {
            debugger;

            if (callback) callback(link.href, response);
        }
    });
}
(获取api令牌需要在上注册;对此表示抱歉),
正如在Chrome开发工具上看到的那样:

{
    "status_code": 200,
    "status_txt": "OK",
    "data": {
        "expand": [{
            /*"short_url": (removed as stackoverflow wouldn't allow me to post a bit.ly link),*/
            "long_url": "http://good.barkpost.com/wp-content/uploads/2015/08/stuck-shiba-inu.jpg",
            "user_hash": "2iRcKet",
            "global_hash": "2iRgc9a"
        }]
    }
}
响应标题:

但是,将执行错误处理程序而不是成功处理程序。接收到的对象如下所示:

Object {readyState: 0, responseJSON: undefined, status: 0, statusText: "error"}
有什么想法吗


更新:我对控制台输出进行了筛选,只显示console.log()。取消选择时,我看到以下错误:

XMLHttpRequest cannot load https://api-ssl.bitly.com/v3/expand?access_token={token}&shortUrl={bitlyUrl}. No 'Access-Control-Allow-Origin' header is present on the requested resource. Funny thing is I have another get ajax request, this one to the YouTube api, and that one isn't complaining.

您的ajax调用似乎正常,但您的令牌有问题。请尝试使用参数/args直接从浏览器中点击您的url浏览器的网络选项卡和/或控制台告诉您HTTP响应代码是什么?仅仅因为您在返回的JSON中得到了200/OK,对$.ajax没有任何意义。如果实际http响应代码不是200,它将选择运行错误函数。检查一下,看看是否有错误消息或非200响应。@JesúsCruz您的数据和屏幕截图显示了响应的实际主体-内容-但不是来自bitly服务器的真实http头/响应。单击标题选项卡以查看它们。对我来说,看起来像CORS问题。响应标头未设置所需的cors标头。虽然在他们的网站上,他们说CORS处于启用状态。这似乎表明您的ajax调用正常,但您的令牌存在问题。尝试使用参数/args直接从浏览器中点击url浏览器的网络选项卡和/或控制台告诉您HTTP响应代码是什么?仅仅因为您在返回的JSON中得到了200/OK,对$.ajax没有任何意义。如果实际http响应代码不是200,它将选择运行错误函数。检查一下,看看是否有错误消息或非200响应。@JesúsCruz您的数据和屏幕截图显示了响应的实际主体-内容-但不是来自bitly服务器的真实http头/响应。单击标题选项卡以查看它们。对我来说,看起来像CORS问题。响应标头未设置所需的cors标头。虽然在他们的网站上,他们说CORS已经启用。