Tengo la siguiente función que está extrayendo datos de una base de datos. La llamada ajax está funcionando correctamente. ¿Cómo puedo enviar los datos delimitados por tabuladores en mi función de éxito al usuario? Establecer el tipo de contexto a "application/vnd.ms-excel" no funcionó. La alerta de éxito muestra los datos formateados correctamente.Usar jQuery para enviar datos de Excel usando AJAX
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);
}});
}
No deseo mostrar los datos en el navegador - Deseo enviarlos a Excel.
EDIT: Encontré una manera de hacer lo que quería. En lugar de redirigir a los usuarios a una nueva página que les pedirá que guarden/abran un archivo de Excel, abrí la página dentro de un iframe oculto. De esta forma, los usuarios hacen clic en un botón y se les solicita que guarden/abran un archivo de Excel. Sin redirección de página. ¿Es Ajax? No, pero soluciona el problema real que tuve.
Aquí es la función que estoy llamando en el botón clic:
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;;
}
¿Alguna razón por la cual esta es una pregunta incorrecta? ¿Por qué se votó esto abajo? – Jim
se votó negativamente porque lo más probable es que todos crean que la solicitud de AJAX es un mal enfoque, pero con un iframe oculto es posible obtener el diálogo de descarga. Aunque obtienes resultados diferentes con cada navegador. Recuerdo que IE era el que tenía los problemas. pero el enfoque del iframe oculto funciona - puedo confirmarlo. – IEnumerator