Buenas, veréis, tengo una aplicación web que verifica una serie de códigos de barras que entran desde un input.
El proceso es:
- El focus siempre está puesto en el input.
- Con el lector de códigos leo el código que esté impreso.
- Se guarda por post en la base de datos local.
En este punto, también necesito que esos mismos valores se guarden en una base de datos espejo en otro servidor. En el servidor B tengo un controlador que es el que se encarga de insertar los datos ahí, y lo invoco por ajax.
Es decir, en mi aplicación, en el momento en el que se inserta en la base de datos local, hago esto:
$.ajax({
url: 'http://servidorB.com/controlador/_random_string_',
dataType: 'json',
success: function( response ) {
if(response.status == 'ok'){
console.log('done');
}
}
});
y lo guarda bien en la base de datos remota. Ahora, en este punto, necesito que el controlador (que se ha ejecutado asíncronamente y es transparente al usuario) devuelva a mi aplicación algo para realizar la siguiente operación: actualizar un campo en la base de datos local.
¿Cómo hago esto? He probado a hacer un "header location" desde el controlador pero no ejecuta nada. Si abro la llamada del controlador al invocar el primer ajax (esta url: http://localhost/proyecto/random_string) sí que redirige correctamente y me actualiza mi campo en la base de datos local. Pero claro, como el controlador del servidor B se ha ejecutado asíncronamente, no hace nada por el funcionamiento natural.
¿Alguna idea?