Как получить заголовок Content-Disposition в axios response?

Для получения заголовка Content-Disposition в ответе от сервера при использовании библиотеки Axios в JavaScript, можно воспользоваться следующим методом:

1. Сначала отправьте запрос на сервер, используя методы Axios, такие как axios.get, axios.post и т.д.:

axios.get('https://api.example.com/getFile', { responseType: 'blob' })
    .then(response => {
        // Ваш код здесь
    })
    .catch(error => {
        console.error(error);
    });

2. Вторым параметром в методе .get (или другом методе запроса) вы можете указать responseType: 'blob', чтобы получить ответ сервера в виде блоба (объекта типа Blob) для бинарных данных, таких как файлы. Это позволит обрабатывать файлы, полученные из ответа сервера.

3. В блоке .then обработайте ответ сервера и получите заголовок Content-Disposition, используя метод getResponseHeader('content-disposition'):

.then(response => {
    const dispositionHeader = response.headers['content-disposition'];
    console.log(dispositionHeader);
})

4. В переменной dispositionHeader будет содержаться значение заголовка Content-Disposition. Обратите внимание, что свойство headers содержит все заголовки ответа, поэтому вы можете получить к ним доступ, используя response.headers['название_заголовка'].

5. Далее вы можете обработать значение заголовка Content-Disposition, чтобы извлечь имя файла или другие параметры, если они есть. Обычно заголовок Content-Disposition выглядит следующим образом:

attachment; filename="file.txt"

6. Можно использовать регулярное выражение, чтобы извлечь имя файла. Например:

.then(response => {
    const dispositionHeader = response.headers['content-disposition'];
    const regex = /filename=["']?([^'"s]+)["']?/;
    const matches = regex.exec(dispositionHeader);
    
    if (matches != null && matches.length > 1) {
        const filename = matches[1];
        console.log(filename);
    }
})

7. В переменной filename будет содержаться имя файла из заголовка Content-Disposition.

Важно отметить, что получение заголовка Content-Disposition зависит от настроек сервера и ответа от него. Если сервер не отправляет заголовок Content-Disposition, то получение этого заголовка не будет возможным.