Сохраните результат POST-реквизита в глобальной переменной - PullRequest
0 голосов
/ 20 апреля 2019

Как сохранить результат набора POST в глобальной переменной? Мне нужно получить значение имени (значение, которое должно быть после нажатия на btn1) после нажатия на btn2 HTML:

<button type='button' id='btn1'>
<button type='button' id='btn2'>

JS:

let name;
const btn1 = document.getElementById('btn1');
btn1.addEventListener('click', () => {
  axios.post('/someUrl', {
      name: 'someName'
    })
      .then((response) => {
        name = response.data.name;
      })
      .catch((error) => {
        console.log(error);
      }); 
});

const btn2 = document.getElementById('btn2');
btn2.addEventListener('click', () => {
  console.log(name)
});

большое спасибо за вашу поддержку!

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Ваш код работает как проверено здесь: https://jsfiddle.net/fvsn0ckh/

Убедитесь, что ваш запрос POST действительно возвращает объект со свойством name. Вы можете попробовать изменить name на response.data вместо response.data.name и посмотреть, что он показывает.

0 голосов
/ 20 апреля 2019

Я предлагаю использовать этот формат кода один раз, это поможет вам

  let name = axios.post('/someUrl', {
      name: 'someName'
    })
      .then((response) => {
        return response.data.name;
      })
      .catch((error) => {
        console.log(error);
      });
          // doing other something
          return data;

Ваше имя будет содержать response.data.name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...