我有以下从数据库中提取数据的函数。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;;
}