0

I cannot get this $.ajax function to work in Chrome. When I make the ajax request, a response is never returned. When I view this in Chrome dev tools, it states that the json request is still pending. So far, I have found suggestions to add these parameters to the options.

'{type: "post", data: '', cache: false, async: false}'

However, none of these options made it work.

        try {
            var o = {username: 'adobeedge', count: 4};
            var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count;

            $("body").append('<p>attempting ajax</p>');

            $.ajax({url: twitterUrl,
                dataType: 'jsonp',
                type: "post",
                data: '',
                cache: false,
                async: false,
            })
                    .success(function(data) {

                    $.each(data, function(index, item) {
                        $("body").append(item.text);
                    });
                }) ;
        }
        catch (error) {
            alert("Error: " + error.toString());
        }
4

4 回答 4

1

以下代码在我的情况下工作正常

我的 chrome 版本:23.0.1271.95 m

try {
        var o = {username: 'adobeedge', count: 4};
        var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count;

        $("body").append('<p>attempting ajax</p>');

        $.ajax({url: twitterUrl,
            dataType: 'jsonp',
            type: "post",
            data: '',
            cache: false,
            async: false,
        })
                .success(function(data) {

                $.each(data, function(index, item) {
                    $("body").append(item.text);
                });
            }) ;
    }
    catch (error) {
        alert("Error: " + error.toString());
    }
于 2012-12-05T14:51:48.453 回答
0

我今天在 OSX 10.8.2 上的一个完全修补的 Chrome 上与这个问题作斗争,你描述的确切症状。这是我可以通过谷歌找到的唯一提及我的问题。

事实证明,这是由一个名为Disconnect的以隐私为中心的扩展程序引起的。

尝试禁用扩展程序以查看是否可以解决问题。希望这可以帮助。

于 2013-04-04T23:42:55.613 回答
0

我不知道这是否有任何帮助,但我从未见过附加在 ajax 调用外部的成功函数。我看过的所有 jQuery ajax 文档都显示了附在末尾的“.done”。但是,我只看到成功定义为实际 ajax 调用本身中的一个选项。您可以尝试如下重写它:

$.ajax({
    url: twitterUrl,
    dataType: 'jsonp',
    type: "post",
    data: '',
    cache: false,
    async: false,
    success: function(data) {
        $.each(data, function(index, item) {
            $("body").append(item.text);
        });
    }
});

看看这是否有帮助。还有另一篇Stack Overflow 文章也可能对您有所帮助。本文描述了“success:”与“.done”的不同用法。有关 .ajax 文档的更多信息,请访问 .ajax 的 jQuery API文档

希望这可以帮助。

于 2012-12-05T14:08:53.857 回答
0

jsonp不支持同步调用。试试async: true

我无法尝试它,因为我在推特被封锁的办公室工作。

于 2012-12-05T14:17:05.337 回答