POST-запрос запускается только после подтверждения пользователем - PullRequest
0 голосов
/ 01 марта 2020

У меня есть форма Vue. js с кнопкой отправки. При щелчке отправляется запрос POST ax ios и запускается визуальное предупреждение, если вызов действителен.

Все работает нормально, но для мелочей. Запрос POST не отправляется до тех пор, пока ПОЛЬЗОВАТЕЛЬ не нажмет «ОК» во всплывающем окне с предупреждением. Это не предполагаемое поведение. Запрос следует отправлять до тех пор, пока он является действительным вызовом, а всплывающее окно является просто визуальным подтверждением.

Есть ли у вас какие-либо идеи относительно того, почему оповещение инициирует запрос? Спасибо!

submitForm(formName) {
  this.$refs[formName].validate(valid => {
    if (valid) {
      axios.post(
        "https://dummy.com",
        { name: this.ruleForm },
        {
          headers: {
            "Content-type": "application/json"
          }
        }
      );
      alert(
        "Success!"
      );
    } else {
      alert("Error at submit. Check required fields.");
      console.log("Error at submit. Check required fields.");
      return false;
    }
  });
},

Бонусный вопрос: знаете ли вы простой способ вызвать перенаправление после того, как пользователь подтвердил предупреждение? : D

Ответы [ 2 ]

0 голосов
/ 01 марта 2020
submitForm(formName) {
  this.$refs[formName].validate(valid => {
    if (valid) {
      axios.post(
        "https://dummy.com",
        { name: this.ruleForm },
        {
          headers: {
            "Content-type": "application/json"
          }
        }
      ).then(function(res){
          alert(
               "Success!"
                       );
              //write your code - response code is 200
    }).catch(function(err){
               alert(
                  "Error!"
                      );
               //write your code - response code != 200
     });

    } else {
      alert("Error at submit. Check required fields.");
      console.log("Error at submit. Check required fields.");
      return false;
    }
  });
},
0 голосов
/ 01 марта 2020

Топор ios. Пост асин c. Вам, вероятно, следует вызвать предупреждение об успешном завершении, когда результат вернется:

 axios.post(
    "https://dummy.com",
    { name: this.ruleForm },
    {
      headers: {
        "Content-type": "application/json"
      }
    }
  ).then(res => {
     alert(
      "Success!"
     );
  }).catch(err => console.error(err)) // handle error here

Кроме того, предупреждение блокирует дальнейшее выполнение до тех пор, пока пользователь не нажмет ok (синхронно).

...