Можно ли jquery $ .get () вызвать сервлет и использовать его для загрузки файла или обновления страницы без перезагрузки страницы? (Или, в принципе, могу ли я загрузить файл без перезагрузки страницы?)
Например, я использую сервлет, который либо возвращает файл для загрузки mimetype "application / octet-stream", либо возвращает текст для обновления на странице типа "text / html".
Я могу написать форму с отправкой, но затем она перезагружает страницу, поэтому я пытался использовать $ .get () ... но загрузка не работает.
<script type="text/javascript">
jQuery(document).ready(function(){
$("#handleFileOptions button").button();
});
function handleFilesSubmit(requestType)
{
$.get('FileServlet', {filename: $('#radioFileList input:radio:checked').button("widget").text(), requestType: requestType}, function(data){ ...?... });
}
</script>
В html:
<div id = "handleFiles">
<div id ="radioFileList">
<div id="radioFileList">
<input value="file0.txt" type="radio" id="fileitem0><label for="fileitem0">file0.txt</label>
<input value="file1.txt" type="radio" id="fileitem1><label for="fileitem0">file1.txt</label>
</div>
</div>
<div id="handleFileOptions">
<button id="handleFileOption0" onclick="handleFilesSubmit('Download')">Download</button>
<button id="handleFileOption1" onclick="handleFilesSubmit('Delete')">Delete</button>
</div>
</div>
Решение В соответствии с предложением ниже, я изменил функцию отправки, чтобы загрузить сервлет напрямую:
function handleFilesSubmit(requestType)
{
if(requestType == "Download"){
window.location.replace("FileServlet?filename="+$('#radioFileList input:radio:checked').button("widget").text()+"&requestType="+requestType);
}
else {
$.get('FileServlet', {filename: $('#radioFileList input:radio:checked').button("widget").text(), requestType: requestType}, function(data){ ...?... });
}
}