我通过 ajax 请求发送数据,并在处理完数据后返回一个数组,该数组被编码为 json 格式。
$response = array(
'data' => $leaveData,
'message' => 'Event added successfully',
'status' => 'success'
);
echo json_encode($response);
exit;
其中$leaveData
是一个关联数组:
Array
(
[id] => 131
[user_id] => 134
[leave_type_id] => 2
[issued_date] => 2017-10-17
[leave_from] => 2017-10-25
[leave_to] => 2017-10-26
[leave_description] => test
[leave_status] => 1
)
这是我的ajax请求:
$.ajax({
url:"leave/request",
data:{
id:eventID,
user_id:empID,
leave_type:leaveType,
},
type:"POST",
cache:false,
success: function (data, resp){
var json = data,
obj = JSON && JSON.parse(json) || $.parseJSON(json);
}
});
另外,我认为JSON && JSON.parse(json) || $.parseJSON(json)
用于同一目的?
我不知道出了什么问题。
答案 0 :(得分:0)
不久前,我遇到了相同的问题,问题出在我试图拉入成功回调的数据之内,我删除了静态变量,以至于试图进入json并保留其值严格仅来自查询结果。也许对您来说一样。
答案 1 :(得分:-1)
您可以使用ajax dataType
属性在ajax响应之后直接插入JSON,如:
$.ajax({
url:"leave/request",
dataType: "json",
data:{
id:eventID,
user_id:empID,
leave_type:leaveType,
},
type:"POST",
cache:false,
success: function (data){
console.log(data);
}
});
答案 2 :(得分:-1)
向ajax函数添加“错误”回调,然后打印内容:
error: function(data) {
console.log("AJAX ERROR:", data);
}
这将告诉你ajax试图解析为json。