POST Falha via solicitação AJAX?

3

Eu não posso para a vida de mim descobrir porque isso está acontecendo.

Isso é uma espécie de repost (enviado para o stackoverflow, mas talvez um problema no servidor?).

Estou executando uma função de logout do javascript chamada logOut () que fez uma chamada ajax do jQuery para um script php ...

function logOut(){
    var data = new Object;
    data.log_out = true;
    $.ajax({
        type: 'POST',
        url: 'http://www.mydomain.com/functions.php', 
        data: data,
        success: function() {
             alert('done');
        }
    });
}

a função php que chama está aqui:

if(isset($_POST['log_out'])){ 
    $query = "INSERT INTO 'token_manager' ('ip_address') VALUES('logOutSuccess')"; 
    $connection->runQuery($query); // <-- my own database class...
    // omitted code that clears session etc...
    die();
}

Agora, 18 horas por dia, isso funciona, mas, por algum motivo, de vez em quando, os dados do POST não acionam minha consulta. (isso durará cerca de uma hora ou mais). Eu descobri que os dados do post não estão sendo definidos adicionando isso no final do meu script ...

$query = "INSERT INTO 'token_manager' ('ip_address') VALUES('POST FAIL')"; 
$connection->runQuery($query);

Então, agora eu sei com certeza que minha função de logout está sendo ignorada porque no meu banco de dados estão os seguintes dados:

seeleNÃOestivessesendoignorado,meusdadosapareceriamassim:

Eu sei que está sendo ignorado por dois motivos, um o die () no final da minha primeira função, e dois, se fosse um sucesso, um "logOutSuccess" seria registrado na tabela.

Alguma ideia? Um amigo diz que é uma empresa de hospedagem janky (hostgator.com). Eu pessoalmente gosto deles porque eles são baratos e eu sou um fã de cpanel. Mas, se esse for o caso,

Obrigado antecipadamente.

-J

    
por Jascha 19.05.2010 / 22:55

2 respostas

1

Esse é o único script que chama o functions.php?

Em vez de registrar apenas "POST FAIL", tente registrar o resultado de print_r ($ _ POST, true) e talvez $ _SERVER ['HTTP_REFERER']. Isso pode dizer de onde as chamadas com falha estão vindo.

    
por 09.06.2010 / 22:07
0

Tente um sniffer HTTP para descobrir primeiro se é o seu script PHP com o problema ou o código AJAX. Ou pode ser uma condição do cliente que você não conhece. Pode não ser o seu código AJAX. O Sniffer ajudará a eliminar se é definitivamente um problema do lado do cliente ou não.

    
por 31.05.2010 / 15:09

Tags