2015-01-12 14 views
0

안녕하세요 저는 Ajax를 처음 사용하고 Json을 데이터베이스에 전달하려고 시도하고 있지만 그다지 멀지 않습니다. 현재 전달중인 데이터가 성공적으로 완료되고 있는지 확인하려고 시도하고 있습니다. 그러나, 나는 항상 아약스 오류 메서드에 빠져 들었다. 내 코드와 데이터가 보이는 방식 및 오류를 업로드 할 것입니다.Ajax 오류로 인해 잘못된 데이터 객체가 전달됨

도움 주셔서 감사합니다.

<script> 
function updateTable() 
{ 
    alert("Do i try to update table?"); 
    document.getElementById("testLand").innerHTML = "Post Json"; 
    //echo new table values for ID = x 
} 
function popupClick(){ 
    var popupObj = {}; 
    popupObj["Verified_By"] = $('#popupVBy').val(); 
    popupObj["Date_Verified"] = $('#popupDV').val(); 
    popupObj["Comments"] = $('#popupC').val(); 
    popupObj["Notes"] = $('#popupN').val(); 
    var popupString = JSON.stringify(popupObj); 
    alert(popupString); 
    $.ajax({ 
     type: "POST", 
     dataType: "json", 
     url: "popupAjax.php", 
     data: popupObj, 
     cache: false, 
     success: function(data) 
     { 
      alert("Success"); 
      updateTable(); 
     }, 
     error: function(data) 
     { 
      alert("there was an error in the ajax"); 
      alert(JSON.stringify(data)); 

     } 
    }); 
} 
</script> 

JSON 존재는 var에 popupString에 표시된 전달 :

JSON Being Passed shown in popupString

오류 :

enter image description here

popupAjax.php 파일

<?php 
echo "Testing tests are testy"; 
?> 
(가 퉁명스러운의 경고)
+1

이 요청을 처리하는 서버 측 코드는 무엇입니까? – Musa

+0

1 초를 더합니다. – vector

+0

'dataType : "json",'행은 json이지만 응답은 json이 아니므로 오류가 표시됩니다. – Musa

답변

1

dataType을 json으로 지정합니다. 하지만이 데이터 형식은 반환되는 데이터 형식이 아닌, 전송할 데이터의 형식입니다. 당신이 JSON을 서버 측에 자료 구조를 구축하고 그것을 보낼 필요가 반환 할 경우

type: "POST", 
    url: "popupAjax.php", 

: 그냥 dataType 라인을 제거 할 수 있도록

당신은 HTML/텍스트를 반환하는 종료. 테스트 케이스에서는 다음과 같을 것입니다 :

echo json_encode("Testing tests are testy"); 

그러나 중첩 된 오브젝트 또는 배열을 보낼 수도 있습니다.

폼에 .serialize()을 사용하면 (양식을 사용하는 경우) jQuery가 자동으로 ajax 메서드로 보낼 수있는 개체를 만들 수 있습니다. 그렇다면 수동으로 그렇게 할 필요는 없습니다.

+0

도움 jeroen 주셔서 감사합니다, 나는 dataType을 제거 : "json",하지만 난 여전히 내 오류 기능에 떨어지고있다, 왜 그게 뭔지 알아? – vector

+0

@vector 방금'.serialize()'에 대한 메모를 추가했습니다. 아마도 보내고있는 데이터 구조가 잘못되어 보이지 않더라도 오류가 발생할 수 있습니다. 정확한 답을 콘솔에서 확인할 수 있습니다. 단서가 있습니다. – jeroen

+0

폼을 사용하지 않고 실제로 변수를 가져 오는 중입니다. 폼을 사용하고 있다면 .serialize()를 어디에 추가할까요? – vector

관련 문제