@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'))");
  • Вопрос задан
  • 2109 просмотров
Решения вопроса 1
DaFive
@DaFive
У вас нет ответа на стороне PHP для аякс-запроса. Вы вставляете данные в БД, а обработчик javascript ждёт в ответ валидный JSON. Напишите в конце php-файла echo json_encode(1); и будет вам рабочий скрипт.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Посмотрите, что вам возвращает сервер во вкладке Сеть в браузере или сделайте curl запрос на сервер. Указанная ошибка говорит, о том что с сервера получен не ожидаемый JSON или вообще ничего не получено.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽