Я написал код, который использует Angular $http для загрузки файла. Имя файла не указано в URL-адресе. URL-адрес содержит уникальный идентификатор файла, который извлекается извне приложения.
Когда вызывается $http.get(myUrl)
, все работает нормально; файл извлекается, и я могу получить к нему доступ в моем обработчике обратного вызова, но я не вижу, как получить имя файла. Захватив исходный ответ с помощью Fiddler, я вижу следующее:
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 54
Content-Type: application/octet-stream
Server: Microsoft-IIS/8.5
Access-Control-Allow-Origin: http://www.example.com/getFile/12345
Access-Control-Allow-Credentials: true
Content-Disposition: attachment; filename=testfile.txt
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 09 Oct 2015 20:25:49 GMT
Lorem ipsum dolar sit amet! The contents of my file!
Из вышесказанного ясно, что сервер отправляет имя файла в "Content-Disposition", но я все равно не получил доступ к нему в моем обратном вызове Angular. Как получить имя файла из заголовков?
Изменить в ответ на ответ ниже:
Я должен был упомянуть ранее, что я уже пробовал response.headers()
. Он возвращает Object {content-type: "application/octet-stream", cache-control: "private"}
, поэтому я по-прежнему не получаю Content-Disposition. response.headers('Content-Disposition')
возвращает null
.