AJAX срабатывает, но нет ошибок, даже если намеренно их сделать
Вот часть кода, здесь происходит регистрация на сервере, все работает, пользователь регистрируется, success срабатывает - выводится алерт и закрывается модалка, НО - регистрироваться можно хоть 100 раз под одним и тем же ником, error - не срабатывает ( если ник такой уже есть, то высвечивалась надпись), на чистом JS работает, на jquery не получается
function signUp() { $('#regBtn').on('click', function(event) { event.preventDefault(); var newName = $("#newName").val(); var newPass = $("#newPass").val(); var registration = { "username": newName, "password": newPass }; var jsonStr; jsonStr = JSON.stringify(registration); $.ajax({ type: "POST", contentType: "application/json", url: urlMain + "api/register/", data: jsonStr, dataType: "json", success: function (data){ alert("Successful registration! Now Log In"); $("#modalReg").modal("hide"); }, error: function (data) { var registrationValid = $(".validRegistration").addClass("validRegistration"); } }); }); } signUp(); |
В данном контексте error является отлов ошибок по связи с сервером ... они не как не влияют на ошибки регистрации ... success должны прийти сервера данные о том что такой пользователь уже существует и уже их обработать как ошибку.
|
Цитата:
function signUp() { document.querySelector('#regBtn').addEventListener('click', function () { var newName = document.getElementById("newName").value; var newPass = document.getElementById("newPass").value; var registration = 'username=' + newName + '&password=' + newPass; var xhrRegistration = new XMLHttpRequest(); xhrRegistration.open('POST', 'http://smktesting.herokuapp.com/api/register/', true); xhrRegistration.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); xhrRegistration.setRequestHeader('Accept', "application/json"); xhrRegistration.onreadystatechange = function () { if (this.readyState === 4) { xhrRegistration.onload = function () { gsonProductComments3 = JSON.parse(xhrRegistration.responseText); if (gsonProductComments3.success === true) { alert("Successful registration! Now Log In"); $("#modalReg").modal("hide"); } else { var registrationValid = document.querySelector(".validRegistration"); registrationValid.className = "validRegistration"; } }; } }; xhrRegistration.send(registration); }); } signUp(); |
dd_smol,
так а как тогда предотвратить одинаковое создание логина? |
Что то наподобие этого должно быть.
$.post(urlMain + 'api/register/', jsonStr, function ( data ) { if ( data.success === true ) { alert("Successful registration! Now Log In"); $("#modalReg").modal("hide"); } else { var registrationValid = $(".validRegistration").addClass("validRegistration"); } }, 'json'); |
Цитата:
|
Цитата:
|
Цитата:
Вы так делаете? jQuery(function ( $ ) { $('#regBtn').click(function ( e ) { $.post('http://smktesting.herokuapp.com/api/register/', $(this).closest('form').serialize(), function ( data ) { if ( typeof data === 'object' && data.success ) { $("#modalReg").modal("hide"); } else { // Смысл сего действия для меня загадка т.к. тупа находит класс и перезаписует его же. $('.validRegistration').addClass('validRegistration'); } }, 'json'); }); }); |
dd_smol,
Так вроде бы работает, может ли быть такой корректный код? function signUp() { $('#regBtn').on('click', function(event) { event.preventDefault(); var newName = $("#newName").val(); var newPass = $("#newPass").val(); var registration = { "username": newName, "password": newPass }; var jsonStr; jsonStr = JSON.stringify(registration); $.ajax({ type: "POST", contentType: "application/json", url: urlMain + "api/register/", data: jsonStr, dataType: "json", success: function (data) { if (data.success === true) { alert("Successful registration! Now Log In"); $("#modalReg").modal("hide"); } else { $('.validRegistration').addClass('validRegistration'); } } }); }); } signUp(); |
Цитата:
|
Часовой пояс GMT +3, время: 19:55. |