Как отменить загрузку файла в Vue

#javascript #vue.js #vuejs2 #axios

#javascript #vue.js #vuejs2 #axios

Вопрос:

У меня есть метод post

 uploadFile: async function () {
  const formData = new FormData();
  formData.append("file", this.file);
  let url = `http://...`;
  try {
    this.source = axios.CancelToken.source();
    const res = await axios.post(url, formData, {
      headers: {
        Authorization: "Token "   this.$store.getters.getToken,
        "Content-Type": "multipart/form-data",
      },
      cancelToken: this.source.token,
    });
  } catch (error) {
  }
}
  

и метод отмены

   cancelLoad: function () {
      this.source.cancel('cancel upload');
  },
  

Запрос был отменен, но после перезагрузки моей страницы файл загрузился.
введите описание изображения здесь

Комментарии:

1. Что именно вы подразумеваете под «загруженным файлом»?

2. @tony19 файл был загружен, и я могу получить его из серверной части

Ответ №1:

Я это исправил.

 const CancelToken = axios.CancelToken;
let cancel;

const res = await axios.post(url, formData, {
      headers: {...},
      cancelToken: new CancelToken(function executor(c) {
        cancel = c;
      }),
}...

cancel();