Атрибут «загрузить» в теге <a> не работает в IE, сафари или Opera

есть ли стандартный способ сделать что-то подобное? Я просто хочу, чтобы скачать xml-файлы с сервера. Пожалуйста, помогите мне!

Нет, насколько я знаю, нет способа сделать это с помощью HTML.

Вы должны исправить это на целевой странице. Если отправляется определенный HTTP-заголовок, браузер будет предлагать загружаемую страницу вместо ее отображения. Это должно работать в каждом крупном браузере. Необходимым заголовком является Content-Type: octet-stream . Как вы отправляете это зависит от вашей настройки.

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

Если, с другой стороны, ваш XML-файл генерируется скриптом PHP, это легко. Просто добавьте следующую строку до того, как что-нибудь еще будет написано , поэтому желательно в верхней части указанного скрипта:

 header('Content-Type: application/octet-stream'); 

Если это статический XML-файл … ну, вы можете сделать для него «прокси-файл». Добавьте файл PHP со следующим содержимым:

 <?php header('Content-Type: application/octet-stream'); // This "fakes" the file name, so the downloaded file isn't called // "download_xml_file.php" or whatever you name the script. header('Content-Disposition: attachment; filename=my_xml_file.xml'); readfile('path_to_the_actual_xml_file.xml'); ?> 

Но постарайтесь избежать этого взлома. Это лишний раздув, и он нарушит кеширование браузера.

 navigator.msSaveBlob(blob, filename) 

https://msdn.microsoft.com/sv-se/library/windows/apps/hh772331

К сожалению, я не знаю, как это сделать в Safari.

Здесь у вас есть таблица с браузерами и их совместимость с загрузкой атрибута, которую Майк написал вам в комментарии: http://caniuse.com/download

И фактический тег с атрибутом (просто для того, чтобы точно ввести его):

 <a href="your_path_to_file" download>Download Me!</a> 

– он будет работать только в firefox, chrome и opera, так как он находится в таблице.

Атрибут загрузки работает только в Firefox и Chrome. Он не будет работать с IE, сафари или Opera.