データベースからデータを取得する次の関数があります。ajax 呼び出しは正しく機能しています。成功関数のタブ区切りデータをユーザーに送信するにはどうすればよいですか? 接続タイプを「application/vnd.ms-excel」に設定しても機能しませんでした。成功時のアラートには、正しくフォーマットされたデータが表示されます。
function SendToExcel() {
$.ajax({
type: "GET",
url: "/Search.aspx",
contentType: "application/vnd.ms-excel",
dataType: "text",
data: "{id: '" + "asdf" + "'}",
success: function(data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
}});
}
データをブラウザに表示するのではなく、Excel に送信したい。
編集: 私がやりたいことをする方法を見つけました。ユーザーを新しいページにリダイレクトして、Excel ファイルを保存/開くように求める代わりに、非表示の iframe 内でページを開きました。このようにして、ユーザーがボタンをクリックすると、Excel ファイルを保存または開くように求められます。ページのリダイレクトなし。アヤックスですか?いいえ、しかしそれは私が抱えていた本当の問題を解決します。
ボタンのクリック時に呼び出す関数は次のとおりです。
function SendToExcel() {
var dataString = 'type=excel' +
'&Number=' + $('#txtNumber').val() +
'&Reference=' + $('#txtReference').val()
$("#sltCTPick option").each(function (i) {
dataString = dataString + '&Columns=' + this.value;
});
top.iExcelHelper.location.href = "/Reports/JobSearchResults.aspx?" + dataString;;
}