2016-08-11 20 views
0

我響應從阿賈克斯這裏的數據JSON如何從JSON使用jQuery阿賈克斯

{"status":"OK"}

然後我嘗試當我嘗試去獲取狀態值

var send = $('#button'), 
numer = $('#number'); 
send.on('click', function(e) { 
e.preventDefault(); 
if (form.valid()) { 
    $.ajax({ 
     type: "POST", 
     url: "/file.php", 
     data: { number: number.val() }, 
     success: function(data) { 
      var test = data + ''; 
      var objData; 
      var status; 
      try { 
       objData = $.parseJSON(test); 
       status = objData['status']; 
       if (objData['status'] != 'OK') { 
        console.log(status); 
        form.attr('validated', true); 
        form.unbind().submit(); 
        response = false; 

       } else { 
        console.log(status); 
        response = true; 
       } 

      } catch (e) { 
       alert(e); 
      } 
     } 
    }); 
} 
return false; 
}); 

然後值imigting未定義,問題在哪裏,任何人都可以幫助我找到合適的salutoion

回答

0

我不知道這工作,但嘗試後url: "/file.php",將此代碼插入dataType: "json",和改變objData['status']data.status

UPDATE 這是一個簡單的代碼IV試圖

$('#button').click(function(e) { 
    //alert("OK"); 
    jsonData = {"status":"OK"}; 

    if (jsonData.status != 'OK') { 
     alert("STATUS NOT OK"); 
    } else { 
     alert("STATUS OK"); 
    } 

    }); 
+0

未定義它的驅動器我瘋了一秒服務器工作正常 –

+0

也許你的Json數據返回空值。當jsondata狀態正常時,我更新了簡單的代碼。我的英文可憐 –

+0

到它不是這真的很奇怪因爲它不工作在一臺服務器上 –

0

您可以在內使用處理程序。您無需在data上調用$.parseJSON(),因爲jQuery已經爲您解密了它。試試這個:

success: function(data) { 
    if (data.status != 'OK') { 
     form.attr('validated', true).unbind().submit(); 
    } else { 
     // handle the other status values here... 
    } 
} 

另外請注意,你的邏輯出現倒退 - 你確定你想設置的形式「驗證」,並提交時的響應OK

+0

但是當我console控制檯。 log(data.status)我沒有定義 –

+0

當你'console.log(data)'時,你會得到什麼? –

+0

「{\」status \「:\」OK \「}」當我的控制檯日誌數據完全像這樣 –