JSON输入ajax的意外结束



事情是这样的。我的Ajax代码中有一个错误,导致以下错误:

JSON输入ajax异常结束

下面是我的代码:

我通过以下操作从数组中获取数据:

echo json_encode($departTickets);

然后我通过以下操作解析JSON:

$("[data-department-id]").click(function() {                   
id = $(this).attr('data-department-id');  
$.ajax({
type: 'POST',                       
data : {
'id' : id  
},
url:"/desk/template/fetchtickets.php",

success: function (res) {                           
var data = jQuery.parseJSON(res);

for (var jsonId in data) {                               
$('#department_'+id).html(jsonId);                                   
}   
}
});                                       
});

根据代码,是什么导致了这个问题?

谢谢你,凯文·戴维斯

编号1echo json_encode($departTickets);您的数据编码json。

然后将其解析为AJAX,但您没有告诉AJAX您的dataType是json。

我们这样告诉ajax

$("[data-department-id]").click(function() {                   
id = $(this).attr('data-department-id');  
$.ajax({
type: 'POST',
url:"/desk/template/fetchtickets.php",
dataType: 'json',
data : {
'id' : id  
},
success: function (res) {                           
var data = jQuery.parseJSON(res);

for (var jsonId in data) {                               
$('#department_'+id).html(jsonId);                                   
}   
}
});                                       
});

请注意我如何改变url的位置,并将dataType放在它的下面。

找到解决办法了…

首先是我是如何找到分辨率的

我使用了以下命令:

echo json_last_error_msg();

然后是数据的编码问题,所以我做了以下操作:

$departTickets =  mb_convert_encoding($departTickets, 'UTF-8', 'UTF-8');  
echo json_encode($departTickets); 

问题解决了。

最新更新