Я обновляю мою платформу Codeigniter с 2.2.6 до 3.0.6. Она сломала существующий код, который работал раньше. В частности, я получаю сообщение об ошибке "SyntaxError: JSON.parse: unexpected character at line 2 column 1 of the JSON data" inside the browser console.
Я попытался посмотреть и проверить, является ли это известной проблемой при обновлении, но я не видел, чтобы кто-то еще испытывал это.
Вот javascript, который я Я использую:
$('#addServiceItem').on('change', function() {
var serviceID = $(this).val();
$.ajax({
url: '/ajax/get_service_details/' + serviceID,
}).done(function(data) {
if (data.status == 'success') {
addServiceItem(data.service);
} else {
alert(data.message);
}
});
});
Кроме того, вот функция, которая вызывается в ajax url:
public function get_service_details($serviceID = 0)
{
if (!$this->input->is_ajax_request()) {
exit('No direct script access allowed');
}
if ($serviceID == 0) {
header('Content-type: application/json');
echo json_encode(array(
'status' => 'error',
'service' => null,
'message' => 'We could not find the service.'
));
}
$service = $this->services_model->get_service_details($serviceID);
header('Content-type: application/json');
echo json_encode(array(
'status' => 'success',
'service' => $service,
'message' => ''
));
}
Как указано выше, этот код работал в предыдущей версии Codeigniter. Насколько я могу судить, существует проблема с вызовом Ajax, возвращающим значение. В переменной javascript данные остаются неопределенными. Я предполагаю, что есть синтаксический стандарт, который изменился.