JavaScript: Pasar post data con window.location.href

Descripción:

javascriptBueno ya hace un tiempo me encontré con un problema, ocupaba hacer un export de unos datos en un archivo excel, el cual los datos se obtenían de un webservice con javascript, el Front-End envia un request al back-end para que él se encargara de generar el excel con los datos obtenidos del webservice. El problema estaba en como enviar esos datos(era mucha informacion y era obligado a usar POST), bueno use Ajax de jquery pero no funciono porque la función ajax siempre espera un response del request que se realiza, el cual el back-end lo que enviaba era el archivo ya creado, entonces el response tenia codigos raros, lo que yo ocupaba era que me lanzara la ventanita de descarga, es decir hacer la petición desde el front y no esperar ningun response, sino que el back-end lanzara automáticamente la descarga del archivo.

Soclucion usando window.location.href

function getExport(params){
var body = document.body;
form=document.createElement('form');
form.method = 'POST';
form.action = window.location.href.replace('#','')+'views/dispatch.php';
form.name = 'jsform';
for (index in params) {
var input = document.createElement('input');
input.type='hidden';
input.name=index;
input.id=index;
input.value=params[index];
form.appendChild(input);
}
body.appendChild(form);
form.submit();
}

el archivo dispatch.php es el encargado de crear el excel. Llamado de la funcion getExport

getExport({xaction:'excelExport' ,'Params':JSON.stringify(_ObjectTester)});

donde la variable _ObjectTester tiene toda la informcion obtenida del webservice

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s