Javascript 转换API响应

Javascript 转换API响应,javascript,jquery,ajax,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,

我正在打一个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();
            }
        }
    })
});
这里变量数据可能是一个字符串,所以使用json.parse将其解析为json;这样它就会起作用

var data='{valid:true,when:Today}'; var myJSON=JSON.parsedata; console.logmyJSON; //这里的数据是一个字符串,所以使用json.parse将其解析为json;
console.logmyJSON.valid;您应该显示实际的代码…@epascarello:check Now看起来您的服务器没有返回JSON内容类型标题。更安全的方法是指定一个数据类型,这样,如果有一天服务器决定返回正确的内容类型,代码就不会停止工作。而且你的评论是错误的//转换成json它已经是json了,这就是问题所在。