ajax json response parseerror & syntaxerror - PullRequest
       3

ajax json response parseerror & syntaxerror

0 голосов
/ 16 октября 2018

У меня есть несколько функций AJAX, которые возвращают ответ JSON dataType.Тем не менее, похоже, что на сервере есть некоторые ограничения и нет ошибок при локальном запуске сценария.

Код AJAX:

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

PHP:

$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

Не уверен, что является причиной этого.У меня есть 2 других вызова ajax, которые очень похожи на это (просто выбирая из разных таблиц, но не так много данных, и они возвращаются в JSON отлично)

1 Ответ

0 голосов
/ 22 октября 2018

После whileloop, это то, что исправило проблему отсутствия данных.

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)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...