Для получения заголовка Content-Disposition в ответе от сервера при использовании библиотеки Axios в JavaScript, можно воспользоваться следующим методом:
- Сначала отправьте запрос на сервер, используя методы Axios, такие как
axios.get
,axios.post
и т.д.:
axios.get('https://api.example.com/getFile', { responseType: 'blob' }) .then(response => { // Ваш код здесь }) .catch(error => { console.error(error); });
- Вторым параметром в методе
.get
(или другом методе запроса) вы можете указатьresponseType: 'blob'
, чтобы получить ответ сервера в виде блоба (объекта типа Blob) для бинарных данных, таких как файлы. Это позволит обрабатывать файлы, полученные из ответа сервера.
- В блоке
.then
обработайте ответ сервера и получите заголовок Content-Disposition, используя методgetResponseHeader('content-disposition')
:
.then(response => { const dispositionHeader = response.headers['content-disposition']; console.log(dispositionHeader); })
- В переменной
dispositionHeader
будет содержаться значение заголовка Content-Disposition. Обратите внимание, что свойствоheaders
содержит все заголовки ответа, поэтому вы можете получить к ним доступ, используяresponse.headers['название_заголовка']
.
- Далее вы можете обработать значение заголовка Content-Disposition, чтобы извлечь имя файла или другие параметры, если они есть. Обычно заголовок Content-Disposition выглядит следующим образом:
attachment; filename="file.txt"
- Можно использовать регулярное выражение, чтобы извлечь имя файла. Например:
.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); } })
- В переменной
filename
будет содержаться имя файла из заголовка Content-Disposition.
Важно отметить, что получение заголовка Content-Disposition зависит от настроек сервера и ответа от него. Если сервер не отправляет заголовок Content-Disposition, то получение этого заголовка не будет возможным.