AJAX Mesaj Veri gönderme değil mi?

3 Cevap php

Bu neden oluyor bana yaşam için bilemiyorum.

Bu bir repost tür, yani beni affet, ama yeni veri var.

Ben bir php komut dosyası için bir jQuery ajax arama yapmak olduğunu) ikis (adında bir javascript oturumu fonksiyonunu çalıştırıyorum ...

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ğıran php fonksiyonu burada:

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();
}

Now, 18 hours out of the day this works, but for some reason, every once in a while, the POST data will not trigger my query. (this will last about an hour or so). I figured out the post data is not being set by adding this at the end of my script...

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

Benim veritabanında aşağıdaki veri çünkü Yani, şimdi ben işlevi atlanır ediliyor belli benim log out için biliyorum:

alt text

Bu Atlanan olmak değil olsaydı, benim veri bu gibi sırıtmak eder:

alt text

Ben bir "logOutSuccess" tablosunda kayıtlı olacak bir başarı olsaydı, iki nedenden biri benim ilk işlevi sonunda kalıp (), ve iki atlanır ediliyor biliyorum.

Herhangi bir düşünce? Bir arkadaşım bir janky hosting şirketi (hostgator.com) diyor. Bunlar ucuz ve ben cpanel hayranıyım çünkü ben şahsen onları seviyorum. Ama bu durum buysa??

Şimdiden teşekkürler.

-J

3 Cevap

Tamam, ilgilenenler için.

I removed the full URL http://www.mydomain.com/functions.php and replaced it with the local path functions.php and that did the trick.

Görünüşe AJAX etki alanı ajax çağrıları ile sorunları vardır ve ben bir adanmış sunucu değilim, ben bir şekilde POST verileri görevden AJAX neden farklı bir konumda benim komut isabet ben ne oluyor her çift saat (ya da dakika) düşünün.

-J

Jquery $. Ajax fonksiyonu hata raporlamayı sağlayarak deneyin, kod gibi bir şey olmazdı

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');
        },
       error: function(XMLHttpRequest, textStatus, errorThrown) {
       alert(textStatus+" - "+errorThrown);
       }
    });
}

Sizin durumunuza ışık tutuyor olmadığına bakın.

Ben bir sunucu tarafı sorunun daha ziyade müşterinin bulunuyor güçlü bir his var.

Tek şey, bir süre için sorunu görmek olmasıdır. İstemci tüm çalışan, sonra sayfayı yenileyerek veya tarayıcıyı yeniden başlatmadan en az bunu düzeltmek gerekir.

Fonksiyonunun sonunda kalıp () şüpheli olduğunu, ama ben onu nasıl etkileyeceğini pek emin değilim.

Btw bu parametrelerin doğru gönderdi olup olmadığını bilmek, Firebug'ın Net sekmesinde http başlıklarını görebilirsiniz.