2012-05-07 2 views
1

Я работаю с webapp, у которого есть ссылка для загрузки XML-файла. Как и в, щелкните ссылку, браузер загружает файл. Файл загружается, как ожидается, из Chrome/FF/Safari на моем рабочем столе. Он также работает от FF, когда я обманываю свой User Agent как iPad. Но при нажатии на Mobile Safari на iPad ссылка переводит браузер на новую страницу и пытается отобразить xml как html, не загружая ничего.Mobile Safari - ссылка для загрузки html открывает вкладку вместо загрузки файла

В настоящее время HTTP Response содержит следующие заголовки:

Content-Disposition:attachment; filename="myFile.xml"  
Content-Type:application/octet-stream;charset=UTF-8 

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

Кто-нибудь знает, почему это не работает в Mobile Safari, работающем на iPad?

ответ

2

MobileSafari обычно не загружает файлы, даже если они указаны в HTTP-заголовке. Например, невозможно загрузить MP3 с сайта в MobileSafari, он просто будет играть в него. Это связано с тем, что iPhones/iPads не имеют файловой системы, доступной пользователю, - если вы не можете получить доступ к файловой системе, нет никакого способа сохранить или получить доступ к загружаемым файлам. Поэтому, поскольку MobileSafari не может загружать файлы, он просто попытается отобразить его, независимо от того, что говорит HTTP-заголовок.