Estoy usando $.post()
para llamar a un servidor usando Ajax y luego usando JTemplate
para escribir datos en la página actual. Sin embargo, si la sesión se agota, el servidor envía una directiva de redirección para enviar al usuario a la página de inicio de sesión. En este caso, jQuery
está reemplazando el elemento div
con el contenido de la página de inicio de sesión, obligando a los ojos del usuario a presenciar una escena realmente rara.
¿Cómo puedo administrar una directiva de redirección desde una llamada Ajax
con jQuery 1.9
?
Debe usar datos json para responder al cliente. Por ejemplo: en archivo PHP
<?php //for example, data you want to response to client is a html string $data = '<table></table>'; if($is_timeout && $is_ajax_request) { //shouldn't redirect, should return json_encode echo json_encode(array('timeout'=>1)); die(); }else{ echo json_encode(array('data'=>$data)); die(); }
Y en su post
de javascript puede editar a continuación:
$.post('your_url_to_php_file',{data:data_to_post}, function(resp){ var data = jQuery.parseJSON(resp); if(data.timeout) { alert("timeout"); return; }else{ $("#your_div").html(data.data); } })