0

jsonファイルを取得しようとするスクリプトは次のとおりです。

jQuery(function($) {

    //////////////////////HEADLINE NEWS JSON SERVER START///////////////////////////
    var container = $("#headlineNews"); //cache the element
    console.log("First Log message is here!")
    $.getJSON("/JsonControl/Headline_News.json", function(jsonObj) {
        console.log("Second Log message is here!")
        var val = "";

        for (var i = 0; i < jsonObj.news.length; ++i) {
            val += "<div id='newsHeading'>" 
                + jsonObj.news[i].heading 
                + "</div><br/><div id='newsSummary'>" 
                + jsonObj.news[i].summary 
                + "</div><br/>";

            if (jsonObj.news[i].linkText != "" && jsonObj.news[i].linkPath != "") {
                val += "<a href='" + jsonObj.news[i].linkPath + "'>" + jsonObj.news[i].linkText + "</a><br/><br/>";
            }

            val += "<div class='entryDivider'>____________________________________________________</div>";
        }

        container.html(val);
    });

    //////////////////////HEADLINE NEWS JSON SERVER END/////////////////////////////
});​

jsonファイル自体は次のとおりです。

{
    "news": [
        {
        "heading": "Bulky Item Pick-Up to Begin May 4th, 2012 for Residential Utility Account Holders.",
        "summary": "Click on the link below for more details.",
        "linkText": "Bulky Item Pick-Up",
        "linkPath": "/Displayable Files/City_Bulk_Pick_Up_for_e_mailing.pdf"},
    {
        "heading": "NOW OPEN!",
        "summary": "OKMULGEE RECYCLING CENTER<br/>301 E. 3rd Street<br/>(Corner of E. 3rd St. and N. Muskogee Ave.).",
        "linkText": "WHAT TO AND WHAT NOT TO RECYCLE",
        "linkPath": "/Displayable Files/Recycling_Items.pdf"}
    ]
}​

//To omit any of these options, simply leave them blank (i.e., "linkText":"").

console.logを使用しようとしましたが、最初の1つだけが実行され、2つ目は実行されないため、$。getJSONブランチの内容がまったく実行されていないことがわかります(つまり、$。getJSONステートメントは私が正しく理解していれば失敗します)。ただし、スクリプトエラーはまったく発生しません。

また、別のテスターサイトが外部のjsonファイルを正常に実行したため、サーバーはjsonファイルを提供するように設定されています。

パスがどういうわけか間違っているように感じますが、404を取得していません。このパスを再チェックして、構文的に少なくとも12回正しいことを確認しました。

ファイルへのパスが正しく、jsonファイルの構文が正しく、サーバーがjsonファイルを提供するように確実に構成されている場合(たとえば、application / json MIMEタイプが設定されている場合)、$。getJSONコマンドはどのように失敗しますか?ブランチの残りの部分が実行されない場合、2番目のconsole.logが実行されない可能性がある、または実行されない可能性がある他の何かがありますか?

- - - - - - - - - -アップデート - - - - - - - - - - - - - - -

jsonファイルに(誤って)コメントを反映するように投稿を編集しました。

4

3 に答える 3

1

$ .ajaxを使用すると、成功、エラー、および完全な(最終的に)コールバックを指定できるため、使用する必要があります。成功したコールバックであり、リクエストがエラーを返しているため、コールバックが呼び出されていない可能性があります。

$.ajax({
  url: 'ajax/test.html',
  type: 'POST',
  data: jsonData
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  },
  error: function(request, status, error) {
    //do stuff
  }
});
于 2013-01-04T17:33:39.050 に答える
1

これを試して、コンソールにjsonが返されるかどうかを確認してください。

$.getJSON("/JsonControl/Headline_News.json", function(jsonObj) {
   console.log(jsonObj);
});
于 2013-01-04T17:48:52.547 に答える
0

JavaScriptコメント(またはその他)は、JSON構文では無効です。

于 2013-01-04T17:58:16.877 に答える