我有以下功能從數據庫中提取數據。 ajax調用工作正常。如何將我的成功功能中的製表符分隔數據發送給用戶?將競爭類型設置爲「application/vnd.ms-excel」不起作用。成功警報顯示格式正確的數據。使用jQuery使用AJAX發送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文件。沒有頁面重定向。它是Ajax嗎?不,但它解決了我的真正問題。
這裏是我打電話單擊按鈕的功能:
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;;
}
爲什麼這是一個壞問題的任何理由?爲什麼這會被投票? – Jim 2008-10-13 19:53:20
因爲大多數人都認爲來自AJAX的請求是一種糟糕的方法,但隱藏的iframe可能讓下載對話框出現,所以它得到了Down-vote。儘管每個瀏覽器都會得到不同的結果。我記得IE是有問題的那個。但隱藏的iframe方法的作品 - 我可以證實這一點。 – IEnumerator 2011-01-25 16:28:29