@tory_kuzya

Отправка данных (авторизация) посредством httprequest (js). Как для универсальности разбить на 3 класса?

Нужно реализовать авторизацию пользователя: отправку данных (логин и пароль) посредством 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 (логин и пароль)?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы