2011-11-11 3 views
2

내 PHP 측에서 아약스 응답을 보냅니다.ajax에 대한 PHP 응답

$data = array(
      'status' => $status, 
      'message' => $message 
    ); 
    echo json_encode($data); 

내 아약스가 그런 식으로 보입니다.

$.ajax({ 
       url: formUrl, 
       type: formMethod, 
       dataType: "json", 
       data: formData, 
       success: function (data) { 
        //setup variables 
        var responseData = jQuery.parseJSON(data), cl, text; 

        //response conditional 
        switch (responseData.status) { 
        case 'error': 
        cl = 'error'; 
        text = responseData.message; 
        break; 
        case 'success': 
        cl = 'success'; 
        text = 'Qeydiyyat uğurla başa çatdı'; 
        break; 
        } 

        $.notifyBar({ 
        cls: cl, 
        html: text 
        }); 

       } 
      }); 

responseData가 null 오류 메시지입니다. 하지만 (파이어 버그 XHR에서) 나는 PHP가 실제로 결과를 반향하는 것을 알았다. 그 이유는 무엇일까요?

+0

변수 cl, text, responseData = jQuery.parseJSON (data)을 선언합니다. 나는 jQuery가 무엇인지 모르겠다 .parseJSON. – heron

+1

parseJSON은 이미 파싱 준비가되어 있기 때문에 필요하지 않습니다.'alert (data.status)'하면 작동 할 것입니다 (먼저 parseJSON을 제거하십시오). – MacMac

답변

2

jQuery는 콜백에 전달 된 data 매개 변수가 이미 구문 분석되도록 응답 JSON을 구문 분석 할만큼 똑똑하다고 생각합니다. 그래서 data.status, 등등에 직접 액세스 할 수 있습니다.