9

私のコードは次のようになります。

$.get('http://files.mysite.com/data.json', function(data) {
    console.log(data);
}, "jsonp");

NetworkFirebugのメニューを見ると、ファイルへの有効な呼び出しが表示され、JSONファイルを開くと、すべての情報が含まれています。

しかし、Console沈黙のままです。呼び出しの兆候AJAXも私のログもありませんdata

私のAJAX呼び出しは私のファイルと同じドメインにありませんJSON。だから私は使っていますjsonp

何か案は??

4

3 に答える 3

17

I'm not entirely sure what your problem is, if you get a result but the console stays quiet you could have issues with the JSON itself... try JSONLint to find issues.

Also I would recommend you don't use getJson etc.

$.ajax({
    url: http://files.mysite.com/data.json,
    dataType: 'jsonp',
    cache: false,

    beforeSend: function () {
        console.log("Loading");
    },

    error: function (jqXHR, textStatus, errorThrown) {
        console.log(jqXHR);
        console.log(textStatus);
        console.log(errorThrown);
    },

    success: function (data) {
        console.log('Success');
        console.log(data);
    },

    complete: function () {
        console.log('Finished all tasks');
    }
});

This way you get some error handling and other nice little features, you could add a loading spinner via beforeSend, and remove it via complete :)

Edit: Replace the error function with the one below, that should give us a better idea of what the problem is :)

error: function (jqXHR, textStatus, errorThrown) {
  console.log(jqXHR);
  console.log(textStatus);
  console.log(errorThrown);
}
于 2012-09-05T14:38:38.803 に答える
0

応答がjsonになることがわかっている場合は、getの代わりに$.getJSONを使用することをお勧めします。コンソールは今動作するはずです

$.getJSON('http://files.mysite.com/data.json', function(data) {
 console.log(data);
});
于 2012-09-05T14:36:22.473 に答える
0

jsonpはサポートされていません。ここを参照してください。xml 、json、script、htmlのみ なので、クロスドメインポリシーの問題がない場合は、代わりにjsonを使用してください。

$.get('http://files.mysite.com/data.json', function(data) {
    console.log(data);
}, "json");
于 2012-09-05T14:37:20.640 に答える