Estoy intentando abortar una llamada Ajax, pero no consigo hacerlo. El caso es el siguiente, comprueba el usuario de facebook si está en la aplicación y me redirige hacia dentro de la aplicación, pero me sigue recargando la página cada segundo. Entonces quiero abortar la llamada, he intentado de mil formas pero no consigo hacerlo. Este es el código:
function controlarStatus(respuesta)
{
if (respuesta.authResponse)
{
//writeOutput('Control status (con respuesta): '+respuesta.status);
if (respuesta.status === STATUS_CONNECTED)
{
/*
El usuario está logueado y además ha sido autenticado por
la aplicación. En este caso, respuesta.authResponse contiene el ID
del usuario, un token de acceso válido, una petición firmada y el momento
en que el token de acceso y la petición firmada caducarán
*/
// Podriamos guardar datos como el userID y el token de acceso
uid = respuesta.authResponse.userID;
accessToken = respuesta.authResponse.accessToken;
$('#logout').show();
$('#authorize').hide();
$('#login_facebook').hide();
var contador = 0;
FB.api('/me', function(response) {
contador = 1;
var dataFacebook = "username="+response.name+"&token="+accessToken+"&email="+response.email+"&nombre="+response.first_name+"&sexo="+response.gender+"&nacimiento="+response.user_birthday;
$.ajax({
type: "POST",
url: "php/registro-facebook.php", //Mando a ajaxdatos.php
data: dataFacebook, //La cedula
success: function(data) {
if(data == 'registroOK'){ //Si ajaxdatos.php me devuelve algo
$('#abrirAcceder').modal('hide'); //oculto el modal de cedula
$('#error_acceso').hide(); //oculto el modal de cedula
urlWeb = "XXXXXXXXXXXXXX";
$(location).attr('href',urlWeb);
}else{ //si no me devuelve nada el ajaxdatos.php (porque no valido los datos)
$('#abrirAcceder').modal('hide'); //oculto el modal de cedula
$('#error_acceso').hide(); //oculto el modal de cedula
urlWeb = "XXXXXXXXXXXXXX";
$(location).attr('href',urlWeb);
}
}
});
});
}
else if (respuesta.status === STATUS_NOT_AUTHORIZED)
{
/*
El usuario está logueado en Facebook, pero no ha sido autenticado
por la aplicación. Se debería permitir mediante un botón o enlace (si se
hace de forma automática, el cuadro de diálogo puede ser interpretado como
un popup a bloquear).
*/
$('#authorize').show();
$('#logout').show();
$('#login_facebook').hide();
}
else
{
// El usuario no está logueado en Facebook
$('#login_facebook').show();
$('#authorize').hide();
$('#logout').hide();
}
}
else
{
//writeOutput('Control Status (sin respuesta): '+respuesta.status);
if (isLogginProcess)
{
// Si el usuario viene de un proceso de login, es posible que
// haya dado a cancelar en la ventana, por lo que internamente
// solicitamos un nuevo control de estado del usuario
// El parámetro true es fundamental para que la petición no se
// cachee, y por tanto obtengamos el estado real
isLogginProcess = false;
FB.getLoginStatus(controlarStatus, true);
}
if (respuesta.status === STATUS_NOT_AUTHORIZED)
{
$('#authorize').show();
$('#login_facebook').hide();
$('#logout').hide();
}
else
{
$('#login_facebook').show();
$('#authorize').hide();
$('#logout').hide();
}
}
}