@kr_ilya

Ajax ошибка Requested JSON parse failed как исправить?

При выполнении ajax выдает ошибку Requested JSON parse failed. При этом обработчик срабатывает(запись в базу идет). Что делать?
Ajax:
$(document).on('click', '#btn_reg',function() {
		var formData = {
		'login' 	: $("input[name='reg_login']").val(),
		'password' 	: $("input[name='reg_pass']").val(),
		'email'		: $("input[name='reg_email']").val()
		};
		$.ajax ({
			type: 'POST',
			url: '/api/ajax.php',
			data: formData,
			dataType : 'json',
			encoding: true,
        	
			error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
		})
.done(function(data){
console.log(data);
			alert('Успех!!!');
});
		
event.preventDefault();

	});


Обработчик (сырая версия без проверок):
ini_set('display_errors','On');
error_reporting('E_ALL');
function __autoload($name){ include($_SERVER['DOCUMENT_ROOT']."/classes/_class.".$name.".php");}
$func = new func();
$config = new config;
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);
$login = htmlspecialchars($_POST["login"]);
$pass = htmlspecialchars($_POST["password"]);
$time = time();
$ip = $func->UserIP;
$email = htmlspecialchars($_POST["email"]);

$db->Query("INSERT INTO db_users_a (user, email, pass, referer, referer_id, date_reg, ip) 
VALUES ('$login','$email','$pass','admin','1','$time',INET_ATON('$ip'))");
  • Вопрос задан
  • 2254 просмотра
Решения вопроса 1
DaFive
@DaFive
У вас нет ответа на стороне PHP для аякс-запроса. Вы вставляете данные в БД, а обработчик javascript ждёт в ответ валидный JSON. Напишите в конце php-файла echo json_encode(1); и будет вам рабочий скрипт.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Посмотрите, что вам возвращает сервер во вкладке Сеть в браузере или сделайте curl запрос на сервер. Указанная ошибка говорит, о том что с сервера получен не ожидаемый JSON или вообще ничего не получено.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы