0

この $.ajax 関数を Chrome で動作させることができません。ajax リクエストを行うと、応答が返されません。これを Chrome 開発ツールで表示すると、json リクエストがまだ保留中であることが示されます。これまでのところ、これらのパラメーターをオプションに追加する提案を見つけました。

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

ただし、これらのオプションはどれも機能しませんでした。

        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

私の場合、次のコードは正常に動作します

私のクロム バージョン: 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

これが役立つかどうかはわかりませんが、成功関数が 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);
        });
    }
});

これが役立つかどうかを確認してください。また、別のスタック オーバーフローの記事もあります。これも役立つかもしれません。この記事では、「success:」と「.done」のさまざまな用途について説明します。.ajax ドキュメントの詳細については、.ajax の jQuery API ドキュメントを参照してください。

お役に立てれば。

于 2012-12-05T14:08:53.857 に答える
0

今日、OSX 10.8.2 上の完全にパッチが適用された Chrome で、あなたが説明した正確な症状でこの問題と戦いました。これは、Google で見つけた私の問題についての唯一の言及でした。

これは、 Disconnectというプライバシー重視の拡張機能が原因であることが判明しました。

拡張機能を無効にして、問題が解決するかどうかを確認してください。お役に立てれば。

于 2013-04-04T23:42:55.613 に答える
0

jsonp同期呼び出しをサポートしていません。試してみてくださいasync: true

Twitterがブロックされているオフィスで働いているため、試すことができません。

于 2012-12-05T14:17:05.337 に答える