jquery .ajax всегда возвращает ошибку – данные добавляются в базу данных

Я пытаюсь добавить пользователей в базу данных, используя jquery ajax calls. Пользователи добавили просто отлично в базу данных, но ajax всегда возвращается с ошибкой. Я также не знаю, как получить конкретную ошибку. Ниже приведен код, форму, php и jquery.

Вот jQuery

$(document).ready(function() { //ajax call for all forms. $('.button').click(function() { var form = $(this).closest('form'); $.ajax({ type: "POST", url: form.attr('data'), dataType: 'json', data: form.serialize(), success: function (response) { alert('something'); }, error: function() { alert('fail'); } }); }); }); 

Вот PHP

 <?php include 'class_lib.php'; if(isset($_POST['username'])) { $user = new Users; $user->cleanInput($_POST['username'], $_POST['password']); if($user->insertUser()) { echo json_encode('true'); } else { echo json_encode('false'); } } 

Вот HTML

 <div id='newUser' class='tool'> <h3>New User</h3> <form method='post' name='newUser' data='../php/newUser.php'> <span>Username</span><input type='text' name='username'><br> <span>Password</span><input type='password' name='password'> <input type='submit' name='submit' class='button' style='visibility: hidden'> </form> <span class='result'> </span> </div> 

@Musa, выше вы упомянули

Я предполагаю, что это ошибка синтаксического анализа, попробуйте удалить dataType: 'json' и посмотреть, работает ли она

Вы полностью решили проблему, с которой я столкнулся! Мой запрос на отправку ajax был похож на предыдущий, и он просто возвращался в раздел «ошибка». Хотя я проверил использование firebug, статус был 200 (ok), и ошибок не было.

удаление 'dataType: json' решило эту проблему для меня. Большое спасибо!

Оказывается, мне пришлось добавить async: false в функцию $ .ajax. Он не получал ответа от php.

У меня была такая же проблема и открытие. Все время проблема в версии моего jQuery, у меня была версия jquery (jquery-1.10.2.js), но эта версия не была Ajax стабильной. Итак, я меняю версию для (jquery-1.8.2.js), и это чудо перевернулось.

Удачи!

Я знаю, что это старый вопрос, но я просто столкнулся с такой странной ситуацией ( jquery ajax возвращает успех при прямом выполнении, но возвращает ошибку при подключении к кнопке, даже если ответ сервера 200 )

И обнаружил, что с помощью кнопки внутри тегов form JQuery всегда возвращал ошибку. Простое изменение тегов form на div решило проблему.

Я считаю, что JQuery предполагает, что сообщение должно быть закодировано в форму, даже если вы говорите, что это application/json .

Попробуйте переместить свою кнопку вне формы и посмотреть, что произойдет …

Вы должны указать код состояния 200 для успешного ответа.

 <?php http_response_code(200); ?> 

См. Здесь: http://php.net/manual/en/function.http-response-code.php