1

jsonp を使用して次のデータにアクセスしようとしています:

https://github.com/users/jbranchaud/contributions_calendar_data

ただし、私が試した解決策では、コールバックまたは成功関数が呼び出されることはありませんでした。Chrome/Firefox 検査ツールを使用すると、スクリプトを見て、応答が 200 Ok であり、応答テキストに上記の URL からのデータが含まれていることがわかります。それにもかかわらず、コールバック関数も成功関数も、どの時点でも呼び出されません。これを機能させる方法についてのアイデアはありますか?

これを実行するための私の最近の試みは次のとおりです。

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        function parseResults(results) {
            console.log('hello function callback.');
        }

        $.ajax({
            url: 'https://github.com/users/jbranchaud/contributions_calendar_data',
            type: 'post',
            dataType: 'jsonp',
            jsonp: true,
            jsonpCallback: 'parseResults',
            success: function(data, textStatus, jqXHR) {
                console.log('success_function');
                console.log(data);
            },
            error: function() {
                console.log('error with jsonp request');
            }
        });
    </script>

ページを読み込むと、コンソールに「jsonp リクエストのエラー」が表示されるので、ajax リクエストにエラーがあります。このリクエストが成功しない理由のアイデアはありますか?

4

1 に答える 1

0

ajax リクエストで、属性 'jsonp' を false ( jsonp: false ) に設定してみてください。

基本的に、JQuery は次のような自動関数コールバック名を生成します: JQuery1223...34.

あなたの場合、すでに jsonpCallback 関数名を明示的に設定しています。そのため、jsonp 属性を false に設定する必要があります。あなたのコードは次のようになります:

$.ajax({
        url: 'https://github.com/users/jbranchaud/contributions_calendar_data',
        type: 'post',
        dataType: 'jsonp',
        jsonp: false,
        jsonpCallback: 'parseResults',
        success: function(data, textStatus, jqXHR) {
            console.log('success_function');
            console.log(data);
        },
        error: function() {
            console.log('error with jsonp request');
        }
    });
于 2013-08-02T11:39:52.870 に答える