クライアント側のファイルに文字列を書く必要がありますが、インターネットプロトコルではセキュリティ上の問題が認められていないため、これは私の回避策です。 Stringを取得するためにDatabaseを照会するJSPを呼び出します。ユーザーに「名前を付けて保存」ダイアログを表示し、指定したローカルパスにこの文字列を書き込む必要があります。JSPのSave-Asウィンドウを表示する
私のJavaScript関数:JSPでは
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();
}
、私はこのようなものがあります:私は得られた結果を言って、アラートを取得しながら、
response.setHeader("Content-Disposition", "attachment;filename=report.xml");
out.println(stringObtainedFromDatabase);
を私はSave Asダイアログが表示されません。私がこれをやっているのは初めてです。何か間違っているのか教えてください。
しかし、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を参照してください。 –