Для получения заголовка 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, то получение этого заголовка не будет возможным.