SyntaxError:意外的令牌<在位置0的JSON中“在AJAX中出错

时间:2017-10-17 09:42:20

标签: javascript php jquery json ajax

我通过 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)用于同一目的?

我不知道出了什么问题。

3 个答案:

答案 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。