Метод удаления Vuejs axios работает в созданных, но не в методах - PullRequest
0 голосов
/ 14 января 2019

когда я выполняю это в созданном, это работает:

axios
  .delete('http://localhost:8000/product/10')
  .then(response => {
    console.log(response);
  })
  .catch(err => {
    console.log(err);
});

однако, если я создаю кнопку и при отправке вызываю метод, который выполняет тот же код, который не работает, то сзади я получаю в консоли

OPTIONS /product/10 204 0.172 ms - 0

Обратите внимание, что когда я нажимаю кнопку, страница обновляется, и если я нажимаю кнопку несколько раз быстро, она запускается

Редактировать: Я отключил обновление, и теперь оно работает. Могу ли я что-нибудь сделать, потому что я хочу, чтобы метод выполнялся, даже если я обновляю. шаблон:

<b-form class="mt-5 pt-5">
  <b-form-group id="productId" label="Product id " label-form="productIdInput">
    <b-form-input id="productIdInput" type="text" v-model="productForm.id" placeholder="enter product id you wish to delete"> </b-form-input>
  </b-form-group>
  <button type="button" v-on:click="deleteProduct()">Delete</button>
</b-form>

methods:{
  deleteProduct() {
    // this.$store.dispatch('removeProduct',this.productForm.id);
    axios
      .delete('http://localhost:8000/product/10')
      .then((response) => {
        console.log(response);
      })
      .catch((err) => {
        console.log(err);
      })
  },
}

1 Ответ

0 голосов
/ 14 января 2019

Запрос на удаление сначала отправляет параметры, кажется, из-за перекрестного источника, а затем ожидает ответа для отправки реального запроса, когда я нажимаю кнопку, и страница обновляется, и параметры отправляются, однако (что я понял) заключается в том, что запрос на удаление больше не существует для ожидания ответа, поэтому я просто добавил e.preventDefault () в метод

...