Javascript 为什么在ajax请求的成功函数中e.status变得未定义?
我得到的回复是{“状态”:true}。但是,当我执行console.log(即status)时,我得到的是未定义的 当我执行console.log(e)时,我得到{“status”:true} 这是我的ajax请求Javascript 为什么在ajax请求的成功函数中e.status变得未定义?,javascript,jquery,html,Javascript,Jquery,Html,我得到的回复是{“状态”:true}。但是,当我执行console.log(即status)时,我得到的是未定义的 当我执行console.log(e)时,我得到{“status”:true} 这是我的ajax请求 $("#msgfrm").on("submit", function(e) { event.preventDefault(); var name = $("#name").val(); var email = $("#email").val(); $.ajax({
$("#msgfrm").on("submit", function(e) {
event.preventDefault();
var name = $("#name").val();
var email = $("#email").val();
$.ajax({
url: 'ajaxinsert.php',
method: 'POST',
data: {
name: name,
email: email
},
success: function(e) {
console.log(e);
console.log(e.status);
if (e.status === 'true') {
alert("success");
} else {
alert("Fail");
}
}
});
});
请告诉我我的错误是什么???这是因为您得到的结果是字符串。在使用它之前尝试解析它
success:function(e){
var obj=jQuery.parseJSON(e);
alert(obj);
alert(obj.status);
}
当您运行
console.log(typeof e)时会发生什么代码>?我猜这将打印string
而不是object
^此外,您可能只需要JSON.parse(e)
将其从JSONstring
转换为实际的对象。这就是说,在这种情况下,您可能需要验证是否返回“true”
(作为字符串)而不是true
(作为布尔值),因为条件需要字符串。是的,它正在打印字符串,但我已经传递了$response=array('status'=>true,);echo json_encode($response);}设置数据类型:'json'
,因为您似乎还没有在服务器上设置内容类型头<然后将解析code>e
,以便只设置数据类型,解析将在内部完成,或者在出现解析错误时转到错误