2017-05-19 11 views
0

WebサイトのAPIからJSONを取得するためのGETリクエストを設定しました。コンソールのネットワークタブと200のステータス(写真が添付されている)に正しく応答しているにもかかわらず、エラーになります。私は、バリデータを介してJSONレスポンスを実行し、それは正常にチェックアウトします。何が問題ですか?応答を得てもAJAX GET要求がエラーになる

$(document).ready(function() { 
    console.log("ready!"); 
    bindProject(); 
}); 

function bindProject() { 
    $(".project-link").on("click.project", function() { 
     console.log("clicked"); 
     var id = $(this).data("id"); 
     var $this = $(this); 

     loadProject(id, function() { 
      $("#previous, #next").show(); 
     }) 
    }); 
} 

function loadProject(id, callback) { 
    $.get(BASE + "api/page/projects/" + id, {}, function(data) { 
     if (data.success == "true") { 
      console.log("success"); 
      $("#project-info").attr("projectid", id); 
      $("#project-title").html(data.title); 
      $("#project-info").html(data.info); 
      $("#project-year").html(data.info); 
      $("#project-tags").html(data.tags); 
      setProject(); 
     else { 
      console.log("error") 
     } 
    }, "json") 
} 

200 STATUS

JSON RESPONSE

+0

あなたはそれがconsole.log( 'error')か....という意味ですか? – Taplar

+0

また、注意すべきことは、要求に「json」を含めることです。つまり、空のオブジェクトまたは配列であっても、応答は有効なjsonを返さなければなりません。無効なjsonを返すか、jsonを全く返さないと、$ .getが期待通りに正しく解析できないため、エラー処理に移ります。 – Taplar

+0

おそらく、 'data'に' 'true '' value'を持つ ''成功 '' key'がありません。それが理由です。あなたが提供する 'function()'全体は、成功すれば実行されます...これは成功コールバックです。要求が成功したかどうかを確認する必要はありません。 [documentation](https://api.jquery.com/jquery.get/) –

答えて

1

dataは、属性successを持っていますか?

$.get(BASE + "api/page/projects/" + id, function(data) { 
    alert("success"); 
    }) 
    .done(function(data) { 
     alert("second success"); 
     // handle success case here 
    }) 
    .fail(function(data) { 
     alert("error"); 
     // handle error case here 
    }); 

詳しい情報hereに:あなたが何をしようとして場合は、接続が成功した場合、あなたが使用することができますチェックです。それが役に立てば幸い。

+0

あなたは正しかった、私は "成功" 'キー'は '真'に設定されていませんでした。接続の確認を書く時間を取ってくれてありがとう、私は将来それを使用します、 – CalAlt

関連する問題