jquery $ .get()是否可以調用servlet並使用它同時下載文件或更新頁面而不重新加載頁面? (或更基本上,我可以下載一個文件,而無需重新加載頁面?)如何使用jquery從servlet動態下載和刪除文件
例如,我正在使用一個servlet返回一個文件來下載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>
解決方案按照下面的建議,我直接更改提交函數加載的servlet爲:
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){ ...?... });
}
}
+1重要提示。這是處理這個問題的正確方法。 – 2010-04-29 20:37:01
謝謝 - 我添加了一個調用window.location.replace()的下載函數,並且這個函數就像一個魅力一樣。 – 2010-04-29 21:43:05