如何使用jquery ajax从json获取数据

时间:2016-08-11 08:16:32

标签: jquery json ajax

我来自aj​​ax的回复是json

{"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;
});

然后当我试图获得价值未定,问题在哪里时,任何人都可以帮我找到合适的salutoion

2 个答案:

答案 0 :(得分:0)

您可以在data.status处理程序中使用success。您无需在$.parseJSON()上调用data,因为jQuery已经为您反序列化了它。试试这个:

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

另请注意,您的逻辑会向后显示 - 您确定要将表单设置为“已验证”并在 OK的响应中提交吗?

答案 1 :(得分:0)

我不确定这项工作,但尝试在dataType: "json",之后插入此代码url: "/file.php",,并使用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");
     }

    });