-1

次のデータのフィードを取得できません。ajax のデータを指定する方法に問題があることはわかっています。以下は私が試したことです:

<script type="text/javascript">
        $(function() {
            $.ajax({
                type:'GET',
                dataType:'jsonp',
                url:'http://api.stackoverflow.com/1.0/tags/?callback=?',
                success:function(data) {
                    alert(data.tags[0].name.length)
                },
                error:function() {
                    alert("Sorry, I can't get the feed");   
                }
            })
        });
    </script>

次のエラーが表示されます。

SyntaxError: 無効なラベル [このエラーでブレーク]

"合計": 31987,

TJ によると、生の JSON ファイルを取得しています。サーバーがJSONリクエストを送信するときに、これを行うには何が必要ですか。

4

1 に答える 1

4

への応答をhttp://api.stackoverflow.com/1.0/tags/?callback=foo見ると、JSONP ではなく JSON であることがわかります。api.stackoverflow.comのドキュメントによると、jsonpJSONP を取得するにはクエリ パラメータを追加する必要があります。http://api.stackoverflow.com/1.0/tags/?jsonp=foo

最大限の信頼性を得るためにコールバックの名前を制御したい jQuery では、jsonpオプションを使用して、そのパラメーターの名前を指定します (URL には入れないでください。jQuery が行います)。

$.ajax({
    type:'GET',
    dataType:'jsonp',
    jsonp: "jsonp",
    url:'http://api.stackoverflow.com/1.0/tags/',
    success:function(data) {
        alert(data.tags[0].name.length)
    },
    error:function() {
        alert("Sorry, I can't get the feed");   
    }
});
于 2013-01-27T12:30:26.250 に答える