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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽