クライアント側のファイルに文字列を書き込む必要がありますが、インターネットプロトコルではセキュリティ上の懸念から文字列が許可されていないため、これが回避策です。データベースにクエリを実行して取得するJSPを呼び出すAJAXリクエストがあります。弦。ユーザーに[名前を付けて保存]ダイアログを表示し、指定したローカルパスにこの文字列を書き込む必要があります。
私の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」タグのコンテンツを書き込む方法はありますか?