转换API响应

时间:2017-09-25 20:01:59

标签: javascript jquery ajax

我正在进行Ajax调用并获得此响应:

console.log(data);
{"valid":true,"when":"Today"}

当我尝试阅读时,

var res = data.valid;
console.log(res);

它显示未定义。我想添加一个条件:

if (res==true){
    /*code*/
}

实际代码:

    $.ajax({
        "async": true,
        "crossDomain": true,
        "url": url,
        "method": "POST",
        "processData": false,
        "contentType": false,
        "mimeType": "multipart/form-data",
        "data": form,
        success: function(data){
            console.log(data); // {"valid":true,"when":"Today"}
            var res = data.valid;
            console.log(res); // Undefined
            if (res==true){
                 $("p").addClass("test");
                 $("#callForm").hide();
                 $("#buttonClick").hide();
                 $("#success").show();
            }
        }
    })
});

1 个答案:

答案 0 :(得分:0)

此处变量data可能是一个字符串,因此使用json将其解析为JSON.parse();,以便它可以正常工作。

var data='{"valid":true,"when":"Today"}';
var myJSON = JSON.parse(data);
console.log(myJSON);
//Here Data is  a string so parse it to json using JSON.parse();
console.log(myJSON.valid);

完整代码如下所示。

$.ajax({
   "async": true,
  "crossDomain": true,
  "url": url,
  "method": "POST",
  "processData": false,
  "contentType": false,
  "mimeType": "multipart/form-data",
  "data": form,
  success: function(Data){
 console.log(Data); //{"valid":true,"when":"Today"}
  var data=JSON.parse(Data);//convert into json
  var res = data.valid;
  console.log(res); //undefiend
   if(res==true){
       $("p").addClass("test");
       $("#callForm").hide();
       $("#buttonClick").hide();
       $("#success").show();
       }
       }
})
});

试试这个。现在它会起作用。