我尝试将response.message显示为带有id test的标记的内容。它显示为未定义。
success:function(response){
console.log("response"+response); // works
var msg = response.message;
if(response.status=="success"){
console.log("response1"+msg);
document.getElementById('test').innerHTML = msg; //undefined
} else {
jQuery('#test').contents(msg);
document.getElementById('test').innerHTML = msg; //undefined
}
}
答案 0 :(得分:2)
我通常处理此问题的方法是解析JSON响应以使其成为JavaScript对象(使用JSON.parse),请尝试以下代码。
success: function(response) {
console.log("response" + response);
response = JSON.parse(response);
var msg = response.message; // works
if (response.status == "success") {
console.log("response1" + msg); // prints/works
document.getElementById('test').innerHTML = msg; //undefined
} else {
jQuery('#test').contents(msg);
document.getElementById('test').innerHTML = msg; //undefined
}
}
您还应该能够在使用标题
的输出之前在PHP页面上设置内容类型header("Content-type:application/json");
您还可以在ajax调用中将数据类型设置为json,这是非常标准的
$.ajax({
type: "POST",
url: "",
dataType: "json",
success: function(msg) {
//process success
}
...
});
答案 1 :(得分:-1)
undefined不是msg,未定义可能是从document.getElementById('test')
返回。