3

IE9とテキストエディタを使用してWebアプリケーションを開発しました。JSONファイルを読み取り、そのファイルとJavaScriptおよびjQueryコードのロジックに従っていくつかのDIV要素を入力します。IE9では、完全に機能します。

Chromeでは、$。getJSON()ステートメントの実行に失敗するため、データは利用できません。FireFoxでは、$。getJSON()ステートメントが実行されているようです(アラートメッセージがこれを証明しています)が、何も読み取りません。

JSONファイルはJSONLintを渡します。

ChromeもFireFoxもエラーを示していません。

JSONサイトのJSONデータを使用してサンプルファイルを作成し、JSONLintで検証してから、そのファイルを使用してコードを実行しました。違いはありません-Chromeは引き続き$.getJSON()ステートメントを無視します。

私のコードの関連セクション:

    function buildTree(centralID) {
      alert("Can we start, at least?");
     $.getJSON('sample.json', function(data) {
      alert("first success");
      $.each(data.person, function(i, xdata) {

Chromeは最初のアラートを表示しますが、2番目のアラートは表示しません。

何か案は?

4

2 に答える 2

2

これはWebサーバーで実行されていますか、それともブラウザでファイルを開いているだけですか?ファイルを開いているだけの場合は、問題が発生します。

于 2011-12-03T22:35:27.140 に答える
2

組み込みのエラー関数を使用して、エラーを表示およびデバッグできます。

$(document).ready(function(){ // Make sure your jQuery is inside this
$.getJSON("sample.json", function(data) {
    alert('Point 1 Reached.');
    console.log(data); // Here we log to our console
    $.each(data.feed.entry, function(i, item) {
             // Do your stuff here
        }); // End of $.each

// Here Success, Completed & Error do something. chained onto $.getJSON
        }).success(function() { alert("success"); })
          .error(function(jqXHR, textStatus, errorThrown) { // Debug the error!!
                    console.log("error " + textStatus);
                    console.log("error throw " + errorThrown);
                    console.log("incoming Text " + jqXHR.responseText);
                }) // End of .error
          .complete(function() { alert("complete"); });
        });
}); // End of DOM Ready

これにより、firefoxまたはchromeのコンソールウィンドウにエラーが表示されます(console.logはIEで機能せず、スクリプトが壊れます)。FirefoxまたはChromeでコンソールウィンドウを表示するには、を押しF12ます。JSONが機能していない場合は、デバッグ可能なエラーが表示されます。


更新
また、このコードがに含まれていることを確認してください$(document).ready()。$ .getJSON()を他の方法で使用すると、ブラウザ間で予期しない動作が発生する可能性があります。

于 2011-12-03T22:39:23.847 に答える