0
我需要在客戶端的文件中編寫一個字符串,但由於Internet協議不允許出於安全考慮,這是我做的解決方法:我有一個AJAX請求調用一個查詢數據庫以獲取字符串的JSP。我需要向用戶顯示一個「另存爲」對話框,並將此字符串寫入它們指定的本地路徑。從JSP顯示另存爲窗口
我的JavaScript函數:
function openReport(id)
{
var url = "../reports/reportsHandler.jsp?id=" + id;
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//alert(xmlhttp.responseText);
alert("result obtained");
}
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
}
在JSP中,我有這樣的事情:
response.setHeader("Content-Disposition", "attachment;filename=report.xml");
out.println(stringObtainedFromDatabase);
我沒有看到一個另存爲對話框,而我得到的警報說結果獲得。這是我第一次這樣做,請問我是否做錯了什麼?
但是,有沒有在JavaScript中向用戶顯示另存爲對話框並將「div」標籤的內容寫入客戶端系統文件中的方法?
太棒了,工作!然而,爲什麼AJAX請求不適用於內容處置? – Shankar
因爲無法使用AJAX將文件下載到磁盤。請參閱http://stackoverflow.com/questions/3502267/download-a-file-using-ajax和http://stackoverflow.com/questions/676348/allow-user-to-download-file-using-ajax –