Нужно реализовать авторизацию пользователя: отправку данных (логин и пароль) посредством httprequest (на js). Т.е. нужно создать классы, а потом на большом количестве вьюх (страниц) только дергать методы для отправки данных.
Вот так работает (но тут 2 класса, т.е. настройки изменить никак):
<body>
<div class="container">
<form id="form" class="form-signin" role="form" method="post" action="">
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" id="login" name="login" class="form-control" placeholder="Login" required autofocus>
<input type="password" id="password" name="password" class="form-control" placeholder="Password" required>
<label class="checkbox">
<input type="checkbox" value="remember-me"> Remember me
</label>
<button class="btn btn-lg btn-primary btn-block" type="submit" id="submit">Sign in</button>
</form>
</div> <!-- /container -->
<script src="js/login.js"></script>
</body>
$(document).ready(function() {
$("#form").submit(function(e){
e.preventDefault();
});
$("#submit").click(function(){
login.senduth();
});
});
class Http {
constructor(params) {
this.params = params;
}
send(params) {
const http = new XMLHttpRequest()
http.open('POST', 'login.json', false)
http.setRequestHeader('Content-type', 'application/json')
http.send(JSON.stringify(params))
http.onload = function() {
//alert(http.responseText)
}
}
}
class Login {
senduth() {
const params = {
login: document.querySelector('#login').value,
password: document.querySelector('#password').value
}
let http = new Http(params);
http.send(params);
}
}
let login = new Login();
Как для универсальности разбить на 3 класса: class Http (создание запроса), class Settings (настройки запроса: метод, url, async) и class Login (логин и пароль)?