Как мне обрабатывать ошибки, когда responseType является blob с использованием Vuejs? - PullRequest
0 голосов
/ 01 апреля 2020

Мой вопрос похож на этот , на который нет ответа. Я пытался искать во многих других местах, но все еще не получил ответа.

Я пытаюсь загрузить файл, используя Ax ios в VueJs в качестве большого двоичного объекта:

return new Promise((resolve, reject) => {
      Axios.get(`${fileDownloadUrl}`,
        { responseType: 'blob' } // Blob doesn't handle errors
      ).then(response => {
        let byteData = response.data
        var blob = new Blob([byteData], {type: response.headers['content-type']})
        let fileName = _.split(response.headers['content-disposition'], '=')
        FileSaver.saveAs(blob, fileName[1])
        resolve(fileName[1])
      },
        error => {
          console.log(error.response.data) // returns Blob - error message from service is not handled
          reject(error.response.data)
        }
      )

Я удалил { responseType: 'blob' } из приведенного выше кода и повторил попытку, сейчас я получаю сообщение об ошибке, но в загруженном файле нет содержимого, это пустые данные.

Как загрузить файл и обработать ответ об ошибке, возвращенный службой?

...