2016-12-07 1 views
1

다음 jQuery를 사용하면 반환되는 JSON의 값을 어떻게 읽을 수 있습니까? 그것이 얼마나 오류가에있는 한 그것으로, JQuery와도 실행되지 않습니다 alert("A" + obj.sender[0]);AJAX로 PHP에 변수를 보내고 JSON을 다시 받으십시오.

var session_id = $(this).find(".session_id").val(); 
    $.ajax({ 
     type: 'POST', 
     url: '../php/read.php', 
     dataType: "json", 
     data: {sesh_id: session_id}, 
     success: function (response) { 
      var obj = jQuery.parseJSON(response); 
      alert("A" + obj.sender[0]); 
     }, 
     error: function (response) { 
      alert("Err: " + response.status); 
     } 
    }); 

응답의 값은 다음과 같습니다

[{ 
    "sender":"[email protected]", 
    "details":"details1", 
    "date":"2017-01-04 16:11:04" 
}, 
{ 
    "sender":"[email protected]", 
    "details":"details2", 
    "date":"2017-01-04 16:11:05" 
}, 
{ 
    "sender":"[email protected]", 
    "details":"details3", 
    "date":"2017-01-04 16:11:06" 
}] 
+4

돌아 오는 오류가 무엇입니까? –

+0

실제로 게시 할 URL이 있습니까? – atoms

+0

javascript를 통해 답변을 얻었 으면 inspector에서 체크인하고 어떤 상태 코드를 가지고 있는지 ... 내 두 가지 추측 : 1. url은 ajax 요청에 유효하지 않습니다. 2. 어떻게 든 PHP는 HTTP 500을 반환합니다. –

답변

1

당신이 가진 문제는 당신의 인덱스 접근이 obj은 배열이므로 sender 속성이 아닌 잘못된 위치에 있으므로 obj[0].sender이어야합니다.

응답시 JSON.parse()을 호출 할 필요가 없습니다. jQuery가 dataType: 'json'을 지정한대로 자동으로 응답합니다. 이 시도 :

$.ajax({ 
    type: 'POST', 
    url: '../php/read.php', 
    dataType: "json", 
    data: { sesh_id: session_id }, 
    success: function (response) { 
     console.log("A" + obj[0].sender); 
    }, 
    error: function (response) { 
     console.log("Err: " + response.status); 
    } 
}); 

마지막으로, 데이터 유형을 강요하지 않는 alert()을 통해 디버깅 할 때 console.log() 훨씬 더 바람직하다 있습니다.

관련 문제