Прямо сейчас мой скрипт выполняется сразу после загрузки страницы, а затем снова после нажатия кнопки. Можно ли заставить скрипт бездействовать / ждать, пока я не нажму на кнопку, и ТО не запустится? Насколько я понимаю, этот код является асинхронным, и это нормально, но я не хочу, чтобы он запускался сразу после загрузки страницы.
У меня есть простая кнопка HTML:
<button type="submit">Log in</button>
А вот мой сценарий:
var myButton = document.querySelector('button'); //I realize theres an easier jQuery for this
var token;
function getToken(){
alert("get token");
var settings = {
"async": true,
"crossDomain": true,
"url": "...",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"cache-control": "no-cache"
},
"processData": false,
"data": "{ \r\n\"Username\":\"username123\",\r\n\"Password\":\"password123\"\r\n}"
}
alert("going to ajax");
return $.ajax(settings);
}
function handleData(data){
console.log(data);
token = data.access_token;
console.log(token);
}
getToken().done(handleData);
myButton.onclick = function(e){
e.preventDefault();
getToken();
}
Я реализовал несколько предупреждений для визуализации потока. Это выглядит так:
- Загрузить страницу
- Предупреждение: "получить токен"
- Оповещение: "Идем в Аякс"
- Консоль: данные и токен
- Появляется кнопка
- я нажимаю кнопку
- повторяется шаг 2-4