2012-07-11 12 views
5

Estoy intentando lo siguiente:Enviar AJAX de clic, pero todavía ir a la URL de href

Cuando un usuario hace clic en un enlace, quiero actualizar una columna específica de una tabla específica en la base de datos a través de AJAX. PERO aún quiero que el usuario sea redireccionado al href="<url>" del enlace.

Intenté jQuery sin return false; pero entonces el ajax no funciona.

Intenté con return false; pero entonces la página obviamente no redirige a la url como yo quería.

Gracias de antemano por su ayuda.

Respuesta

11

Haga su llamada AJAX, luego configure document.location cuando haya terminado.

$('a').click(function(e){ 
    var href = this.href; // get href from link 
    e.preventDefault(); // don't follow the link 
    $.ajax({ 
     url: '/path/to/site', 
     data: {some: data}, 
     success: function(){ 
      document.location = href; // redirect browser to link 
     } 
    }); 
}); 
+1

window.location = href; sería mejor Mantiene la historia y creo que document.location solo se usa para la redirección en navegadores gecko (firefox). (no estoy seguro de esto) – elvispt

+0

muchas gracias! – user1519235

+0

De nada. Me alegro de poder ayudar :-) –

0

Necesita serializar estas acciones usted mismo. En el caso de que el manejador ejecute primero su solicitud AJAX, busque el href de la etiqueta y use una redirección de ubicación para llevar al cliente a esa URL.

0

poner el código de redirección en la devolución de llamada de éxito:

$.ajax({ 
    ... 
    success: function(){ 
    $(location).attr('href',url); // You URL inserted 
    } 
}); 
+0

Nunca he visto '$ (location) .attr ('href', url);' before. Parece que funciona, pero prefiero 'document.location = url;'. No requiere la sobrecarga de llamar a jQuery. –

+0

@Rocket True. Una posibilidad, pero tu respuesta podría ser más simple. – Steeven

Cuestiones relacionadas