PHP

Зачем делать форму html, а не авторизовывать через ajax запрос, и нужно ли вообще её делать?

К примеру почему бы вместо такой формы:
  



нельзя сделать так?
 



function signin() {
let login = $('input[name="login"]').val().trim();
let password = $('input[name="password"]').val().trim();
$.ajax({
type: "POST",
dataType: 'json',
url: "/core/ajax.php",
data: {
do: 'signin',
login: login,
password: password
},
success: function (result) {

},
});
}

$("#submit").on('click', function () {
signin();
}
Асеке .
Асеке .
118
  1. раньше считалось хорошей практикой делать дубликат яваскриптовых форм обычными для того чтобы юзеры с лошпедских браузеров без JS тоже могли зайти
  2. поля все равно надо размещать на странице
  3. форма автоматом поддерживает дополнительные фичи которых нету в AJAX например оно не будет дублировать одинаковый пост по кнопке обновить или может корректно отобразить ошибку если сервер ругнется статусом не 200
  4. в открытом виде слать пароль по сети рядом с логином это же особо тяжкие с отягчающими
  5. если переделывать на AJAX надо дописывать еще валидацию очистку после отправки заполнение по умолчанию и т п
Евгении Афонин
Евгении Афонин
59 846
Лучший ответ
  
это поле ФОРМЫ.
Чем ты ее обрабатываешь - не имеет значения. Оно осталось ПОЛЕМ ФОРМЫ как в коде до ВМЕСТО, так и в коде после вместо.
Думаешь если ты повесил на ХТМЛ яваскрипт то он перестал быть ХТМЛом? Нет. НЕ перестал.
В браузере пользователь все равно видит Форму. Поэтому вопрос - не корректен.

И кстати аякс - ну такое. Оказывается сейчас особо выигрыша в скорости работы он не дает. Оказывается развелось столько браузеров и свистоперделок к ним что они могут запросто игнорировать твой "аякс".
Кроме того - аякс прекрасно считывается, и если ты не настроил веб сервер правильно и корректно то твоё "/core/ajax.php" можно ломануть или просто задудосить.
Garik Khachatryan
Garik Khachatryan
79 217
Юрий Вишевник <input type="text"> - это поле ввода, а чтобы оно стало полем Формы его следует обернуть в тег <form>
Затем, что форма автоматически обрабатывается браузером. Если все клиенты поддерживают js, то можно не делать форму. Но те, где ajax работает неполноценно, не смогут воспользоваться формой.
Для обратной совместимости.
В форме нужно указывать данные для её работы.