Как заставить вход PHP Luminova работать с jQuery Ajax?Jquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Как заставить вход PHP Luminova работать с jQuery Ajax?

Сообщение Anonymous »

Я пытаюсь создать страницу входа в PHP Luminova, но она не работает с запросами Ajax.
Как мне обновить свой класс входа для работы с Ajax и перенаправления на другая страница после успешного входа в систему или отображается сообщение об ошибке?
Текущий пример не работает.
Проблема, с которой я сталкиваюсь, заключается в том, что я вхожу в систему в Ajax не перенаправляется при успешном входе в систему и не обновляет сообщение об ошибке к элементу `loginMessage`.
Кроме того, когда я проверяю вкладку сетевых запросов браузера при входе в систему, при возникновении ошибки сообщение отображается в предварительном просмотре браузера, в то время как добавленный мной элемент чтобы показать ошибку, отображается только `undefed`. Так же, как и при успешном входе в систему, панель инструментов отображается в предварительном просмотре, но если я перезагрузлю страницу после входа в систему, я перенесусь на панель управления.
Пожалуйста, я буду признателен за любую помощь, я хочу показывать сообщение об ошибке, когда она происходит, и перенаправлять на панель управления в случае успеха.
Мой класс контроллера входа.
use Luminova\Base\BaseController;
use Luminova\Attributes\Prefix;
use Luminova\Attributes\Route;
use Luminova\Security\Crypter;
use App\Models\User;

#[Prefix(pattern: '/api/(:root)', onError: [ViewErrors::class, 'onApiError'])]
class UserController extends BaseController
{
#[Route('/api/login', methods: ['POST'])]
public function userLogin(): int
{
if ($this->request->getBody() === []) {
echo 'Invalid request body';
return STATUS_ERROR;
}elseif($this->app->session->online()){
echo "You are already logged in";
return $this->view('dashboard');
}

$this->validate->rules = [
'email' => 'required|email',
'password' => 'required|min(6)',
];

$this->validate->errors = [
'email' => [
'required' => 'Email must not be empty',
'email' => 'Email address must be a valid email.'
],
'password' => [
'required' => 'Password must not be empty',
'min' => 'Password must not be less than 6 characters'
],
];

if(!$this->validate->validate($this->request->getBody())){
echo $this->validate->getError();
return STATUS_ERROR;
}else{

$password = $this->request->getPost("password");
$email = escape($this->request->getPost("email"));
$user = (new User())->findByEmail($email);

if(!$user){
echo 'Not matching email found.';
return STATUS_ERROR;
}elseif(Crypter::verify($password, $user->user_password_hash)){
$this->app->session->set('name', $user->name);
$this->app->session->set('email', $user->email);
$this->app->session->set('id', $user->id);
$this->app->session->synchronize(ip_address());

return $this->view('dashboard');
}
}

echo 'Invalid email or password provided';
return STATUS_ERROR;
}
}

Вот мой логин с помощью JavaScript.
$('#loginAccountForm').on('submit', function (e) {
e.preventDefault();
$.ajax({
url: '',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({
username: $('#username').val(),
password: $('#password').val(),
}),
success: function (response) {
if (response.success) {
window.location.href = '/dashboard';
} else {
$('#loginMessage').html('' + response.message + '
');
}
}
});
});


Подробнее здесь: https://stackoverflow.com/questions/793 ... query-ajax
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как заставить вход PHP Luminova работать с jQuery Ajax?
    Anonymous » » в форуме Php
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как заставить вход PHP Luminova работать с jQuery Ajax?
    Anonymous » » в форуме Php
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как заставить вход PHP Luminova работать с jQuery Ajax?
    Anonymous » » в форуме Jquery
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как заставить вход PHP Luminova работать с jQuery Ajax?
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Код jquery ajax работает в Ubuntu 20, но не в Debian. Как я могу заставить его работать в Debian? [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Jquery»