语法错误:意外标记<在JSON在位置0” 的错误在AJAX
问题描述:
我发送数据通过AJAX请求并处理返回的数组中的数据,其被编码为JSON格式后。语法错误:意外标记<在JSON在位置0” 的错误在AJAX
$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)
用于同样的目的?
我不知道发生了什么问题。
答
你可以使用AJAX dataType
属性interprate JSON像Ajax响应后直接:
$.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);
}
});
答
添加一个 “错误” 回调到你的Ajax功能,然后打印内容:
error: function(data) {
console.log("AJAX ERROR:", data);
}
这将告诉你什么ajax试图解析为json。
console.log(json)并发布您收到的json是 – user2887596
错误提示您的php脚本的输出是xml/html。浏览器开发人员工具中的确切响应是什么? – jeroen
未捕获的SyntaxError:意外令牌) 在Object.success(core_request_calendar.js:379) 在火(jquery的-1.10.2.js:3101) 在对象。 fireWith [as resolveWith](jquery-1.10.2.js:3213) at done(jquery-1.10.2.js:9312) at XMLHttpRequest.callback(jquery-1.10.2.js:9722) – Azima