Есть ли способ загрузить файл с использованием чистого прототипа и ajax. Я искал его в google, но не получил удовлетворительного результата. Может ли кто-нибудь помочь мне?Загрузка нескольких файлов с использованием prototype.js
1
A
ответ
2
Самый простой способ получить «Ajax» загрузить файл на работу, чтобы использовать замочную скважину IFRAME в качестве цели для вашей формы:
<form action="handler/url" enctype="multipart/form-data" target="keyhole" method="post">
<input type="file" multiple name="user_file[]" />
<input type="submit" id="upload" value="Upload">
</form>
<!-- style the following to be tiny/hidden -->
<iframe id="keyhole" src="about:blank"></iframe>
Трюк с этим, чтобы показать индикатор ожидания, и скрыть после завершения загрузки.
<div id="waiting" style="display:none"></div>
<script type="text/javascript">
$('upload').observe('click', function(evt){
$('waiting').show();
});
</script>
В обработчике загрузки файла, возвращает текст/JavaScript заголовок и следующий скрипт после успешной загрузки:
var waiting = top.document.getElementById('waiting');
if(waiting) waiting.style.display = 'none';
Естественно, это будет работать только тогда, когда обе конечные точки находятся на том же сервере, в силу той же политики происхождения.
Мне нравится этот подход, но что вы хотите «точно вернуть текст/заголовок javascript»? Вы возвращаете содержимое типа «text/javascript» или вы хотите вернуть пустой html-ответ с javascript, выписанным в элементе