2016-04-20 3 views
1

У меня есть страница входа, где пользователь может войти в систему. Если сбой входа в систему, пользователь отправляется на новую страницу с текстом, в котором сбой входа в систему невозможен. Я пытаюсь переделать эту функцию с помощью ajax, так что если сбой входа в систему, он скажет, что логин не выполнен на странице входа в систему, и на другой странице не будет доступа.Проверка пароля laravel с помощью ajax

Вот код в моей функции входа в мой контроллер, который возвращает вид при неудачном входе в систему. Я не уверен, что заменить код, чтобы он работал с ajax.

public function checkValue() 
{ 
// if login failed 
return view("pages.loginFailed"); 
} 

Все, что я хочу сделать с помощью AJAX, чтобы изменить идентификатор элемента, чтобы блокировать, когда Логин не удается, вместо того, чтобы вернуться новую страницу. По строкам фрагмента кода ниже.

var x = document.getElementById("loginFailed"); 
x.style.display = 'block'; 

Вот код, на мой взгляд лезвия

<div class="textFields"> 
<form action =""{{ route("loginVPM") }}"" method="post"> 
<div class="loginDiv"><input class="loginInput" type="form" placeholder="username" name="firstnameLogin"> </input></div> 
<div class="loginDiv"> <input class="loginInput" type ="form" placeholder="lastname" name="lastnameLogin"> </input> </div> 
<div class="loginDiv"> <input class="loginInput" type ="password" placeholder="password" name="passwordLogin"> </input> </div> 
</div> 
<div class="loginFailed" id="loginFailed"> login Failed ! </div> 
<br><br><br> 
<div class="center"> Forgot? &nbsp;| &nbsp; <a href="http://villageprintwebapp.app/users"> Sign up </a> </div> 
<br><br> 
<div class="center"> 
<button type="submit" class="submitButton"> Submit 
</button> 
</div> 
</form> 

Вот это-код, который содержит Аякса

function display() { 

var x = XMLHttpRequest(); 
x.onreadystatechange = function() { 
if(x.readyState == 4 && x.status == 400) 
{ 
var y = document.getElementById("loginFailed"); 
y.style.display = 'block'; 
} 
}; 
x.open("GET", " ", true); 
x.send(); 

Мой вопрос здесь в том, что я не понимаю, что ставить во втором аргументе открытого метода. Я знаю, что это должен быть URL-адрес расположения сервера, но я не уверен, как это узнать, или если я могу передать здесь еще один параметр.

ответ

0

Прежде всего, x.open должен быть POST-запросом, а не запросом GET.

Переменные должны быть отправлены в качестве параметра в x.send (ваша переменная)

См следующий вопрос и учебник.

Send POST data using XMLHttpRequest

https://www.developphp.com/video/JavaScript/Ajax-Post-to-PHP-File-XMLHttpRequest-Object-Return-Data-Tutorial

Вы должны предотвратить действие по умолчанию кнопки отправки или он все равно будет перенаправить на другую страницу.

+0

Я не пытаюсь отправлять какие-либо переменные. «запретить действие по умолчанию кнопки отправки или он будет перенаправлен на другую страницу». Я не думаю, что это правильно. – ray

+0

Вам нужно отправить данные из полей формы в качестве аргумента в x.send(). –

+0

В x.open ("GET", "", true); вы должны ввести {{route ("loginVPM")}} в пустое пространство, после того, как вы измените GET на POST, потому что было бы крайне небезопасно выполнять вход пользователя через GET –

Смежные вопросы