首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ajax json响应解析错误&语法错误

ajax json响应解析错误&语法错误
EN

Stack Overflow用户
提问于 2018-10-16 13:33:37
回答 1查看 79关注 0票数 0

我有几个返回JSON dataType响应的AJAX函数。但是,服务器上似乎有一些限制,当我在本地运行脚本时没有错误。

AJAX代码:

代码语言:javascript
复制
$.ajax({
  url: 'alterajax.php',
  method: 'POST',
  data: {value},
  dataType:'json',
  success: function(data){
    //at the moment for testing
    console.log(data)
  }
});

PHP:

代码语言:javascript
复制
$alterquery = $connection->prepare("SELECT tracking_type, tracking_change_date, tracking_effective_date, IFNULL(vessel_fcm_new, ''), IFNULL(vessel_fcm_old, ''), IFNULL(vessel_hull_id_new, ''), IFNULL(vessel_hull_id_old, ''), IFNULL(vessel_flag_new, ''), IFNULL(vessel_flag_old, ''), IFNULL(vessel_name_new, ''), IFNULL(vessel_name_old, ''), IFNULL(vessel_length_new, ''), IFNULL(vessel_length_old, ''), IFNULL(vessel_manufacturer_new, ''), IFNULL(vessel_manufacturer_old, ''), IFNULL(vessel_manufacturer_id_new, ''), IFNULL(vessel_manufacturer_id_old, ''), IFNULL(vessel_year_new, ''), IFNULL(vessel_year_old, ''), IFNULL(vessel_value_new, ''), IFNULL(vessel_value_old, ''), IFNULL(owner_id_new, ''), IFNULL(owner_id_old, ''), IFNULL(owner_street_new, ''), IFNULL(owner_street_old, ''), IFNULL(owner_city_new, ''), IFNULL(owner_city_old, ''), IFNULL(owner_state_new, ''), IFNULL(owner_state_old, ''), IFNULL(owner_zip_new, ''), IFNULL(owner_zip_old, ''), IFNULL(owner_country_new, ''), IFNULL(owner_country_old, ''), IFNULL(loss_payee_id_new, ''), IFNULL(loss_payee_id_old, ''), IFNULL(loss_payee_street_new, ''), IFNULL(loss_payee_street_old, ''), IFNULL(loss_payee_city_new, ''), IFNULL(loss_payee_city_old, ''), IFNULL(loss_payee_state_new, ''), IFNULL(loss_payee_state_old, ''), IFNULL(loss_payee_zip_new, ''), IFNULL(loss_payee_zip_old, ''), IFNULL(base_id_new, ''), IFNULL(base_id_old, ''), IFNULL(policy_id_new, ''), IFNULL(policy_id_old, ''), IFNULL(policy_start_date_new, ''), IFNULL(policy_start_date_old, ''), IFNULL(policy_end_date_new, ''), IFNULL(policy_end_date_old, ''), IFNULL(vessel_fcm, ''), IFNULL(vessel_hull_id, ''), IFNULL(vessel_name, ''), IFNULL(vessel_manufacturer_id, '') FROM tracking WHERE tracking_type = ? ORDER BY tracking_change_date DESC LIMIT 20");
$alterquery->bind_param("i", $trackingtype);
$trackingtype = 333;
$alterquery->execute();
$alterquery->bind_result($tracking_type, $tracking_change_date, $tracking_effective_date, $vessel_fcm_new, $vessel_fcm_old, $vessel_hull_id_new, $vessel_hull_id_old, $vessel_flag_new, $vessel_flag_old, $vessel_name_new, $vessel_name_old, $vessel_length_new, $vessel_length_old, $vessel_manufacturer_new, $vessel_manufacturer_old, $vessel_manufacturer_id_new, $vessel_manufacturer_id_old, $vessel_year_new, $vessel_year_old, $vessel_value_new, $vessel_value_old, $owner_id_new, $owner_id_old, $owner_street_new, $owner_street_old, $owner_city_new, $owner_city_old, $owner_state_new, $owner_state_old, $owner_zip_new, $owner_zip_old, $owner_country_new, $owner_country_old, $loss_payee_id_new, $loss_payee_id_old, $loss_payee_street_new, $loss_payee_street_old, $loss_payee_city_new, $loss_payee_city_old, $loss_payee_state_new, $loss_payee_state_old, $loss_payee_zip_new, $loss_payee_zip_old, $base_id_new, $base_id_old, $policy_id_new, $policy_id_old, $policy_start_date_new, $policy_start_date_old, $policy_end_date_new, $policy_end_date_old, $vessel_fcm, $vessel_hull_id, $vessel_name, $vessel_manufacturer_id);
while ($alterquery->fetch()){
    $data[] = array($tracking_type, $tracking_change_date, $tracking_effective_date, $vessel_fcm_new, $vessel_fcm_old, $vessel_hull_id_new, $vessel_hull_id_old, $vessel_flag_new, $vessel_flag_old, $vessel_name_new, $vessel_name_old, $vessel_length_new, $vessel_length_old, $vessel_manufacturer_new, $vessel_manufacturer_old, $vessel_manufacturer_id_new, $vessel_manufacturer_id_old, $vessel_year_new, $vessel_year_old, $vessel_value_new, $vessel_value_old, $owner_id_new, $owner_id_old, $owner_street_new, $owner_street_old, $owner_city_new, $owner_city_old, $owner_state_new, $owner_state_old, $owner_zip_new, $owner_zip_old, $owner_country_new, $owner_country_old, $loss_payee_id_new, $loss_payee_id_old, $loss_payee_street_new, $loss_payee_street_old, $loss_payee_city_new, $loss_payee_city_old, $loss_payee_state_new, $loss_payee_state_old, $loss_payee_zip_new, $loss_payee_zip_old, $base_id_new, $base_id_old, $policy_id_new, $policy_id_old, $policy_start_date_new, $policy_start_date_old, $policy_end_date_new, $policy_end_date_old, $vessel_fcm, $vessel_hull_id, $vessel_name, $vessel_manufacturer_id);
}
echo json_encode($data);
?>

错误:

状态: parsererror

错误: SyntaxError: JSON输入意外结束

错误: SyntaxError: JSON.parse错误:位置0处的意外输入

不确定是什么导致了这种情况。我还有另外两个与此非常相似的ajax调用(只是从不同的表中选择,但是没有那么多数据,它们以JSON格式返回)

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 02:53:08

在whileloop之后,这就修复了无法接收数据的问题。

代码语言:javascript
复制
function utf8_converter($array)
{
    array_walk_recursive($array, function(&$item, $key){
        if(!mb_detect_encoding($item, 'utf-8', true)){
                $item = utf8_encode($item);
        }
    });

    return $array;
}

echo json_encode(utf8_converter($data));

服务器是否设置为特定的编码(utf-8)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52828524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档