繁体   English   中英

为什么这个jQuery Ajax调用在Chrome中不起作用

[英]Why won't this jQuery ajax call work in chrome

我无法在Chrome中使用此$ .ajax函数。 当我发出ajax请求时,永远不会返回响应。 当我在Chrome开发者工具中查看此内容时,它指出json请求仍处于待处理状态。 到目前为止,我已经找到了将这些参数添加到选项中的建议。

'{类型:“发布”,数据:“,缓存:错误,异步:错误}'

但是,这些选项都没有使其起作用。

        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());
        }

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

我的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());
    }

我不知道这是否会有帮助,但是我从未见过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);
        });
    }
});

看看是否有帮助。 还有另一篇关于堆栈溢出的文章可能对您也有所帮助。 本文介绍了“成功:”与“ .done”的不同用法。 对于阿贾克斯文档的更多信息,请访问为jQuery的API文档阿贾克斯

希望这可以帮助。

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

我无法在Twitter受阻的办公室工作,因此无法尝试。

今天,我在OSX 10.8.2上完全修补的Chrome上与该问题作了斗争,并提供了您所描述的确切症状。 这是我可以通过Google找到的唯一问题。

原来,这是由名为Disconnect的注重隐私的扩展引起的。

尝试禁用扩展功能,看看是否可以解决问题。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM