我正在尝试检查我对ajax查询的响应,但我似乎无法弄清楚如何解析结果。
有人可以帮忙吗
$('input[name=sendpassword]').click(function(){
var password = $("input[name=password]").val();
var dataString = "uid=" + uid + "&password=" + password;
console.log(dataString);
$.ajax({
type:"POST",
url:"/assets/inc/check-password.php",
data:dataString,
dataType:'html',
context:document.body,
global:false,
async:false,
success:function(data){
console.log(data);
if (data[0].id==true){
console.log("success");
} else {
console.log("failed");
}
//window.location.replace(reffer);
//document.location ="/";
}
});
});
console.log显示 {“id”:false} 或 {“id”:true} ,但我想对结果执行if语句
答案 0 :(得分:2)
尝试这个if(data.d == true)
$('input[name=sendpassword]').click(function(){
var password = $("input[name=password]").val();
var dataString = "uid=" + uid + "&password=" + password;
console.log(dataString);
$.ajax({
type:"POST",
url:"/assets/inc/check-password.php",
data:dataString,
dataType:'json',
context:document.body,
global:false,
async:false,
success:function(data){
console.log(data.d);
if (data.d==true){
console.log("success");
} else {
console.log("failed");
}
//window.location.replace(reffer);
//document.location ="/";
}
});
});
答案 1 :(得分:1)
试试这个jQuery.parseJSON( data )
而不是if (data[0].id==true){
使用if (data.id=="true"){
$('input[name=sendpassword]').click(function(){
var password = $("input[name=password]").val();
var dataString = "uid=" + uid + "&password=" + password;
console.log(dataString);
$.ajax({
type:"POST",
url:"/assets/inc/check-password.php",
data:dataString,
dataType:'html',
context:document.body,
global:false,
async:false,
success:function(data){
data = jQuery.parseJSON(data)
console.log(data);
if (data.id==true){
console.log("success");
} else {
console.log("failed");
}
//window.location.replace(reffer);
//document.location ="/";
}
});
});
或Jared
数据类型:' HTML'需要是dataType:' json'。
那么你就不需要解析为JSON
了答案 2 :(得分:0)
如果控制台只显示{"id":false}
(即没有显示数组),那么您可以通过以下方式使用它:data.id==true
答案 3 :(得分:0)
首先解析结果,以便您可以访问结果中的各个组件。
var parsedResponse = JSON.parse(data)
然后访问parsedResponse.id
,您可以在if
条件中使用。