Php AJAX Post不发送数据?

Php AJAX Post不发送数据?,php,ajax,post,Php,Ajax,Post,我一辈子都搞不明白为什么会发生这种事 这是一种转载,所以请原谅我,但我有新的数据 我正在运行一个名为logOut()的javascript注销函数,该函数对php脚本进行了jQuery ajax调用 function logOut(){ var data = new Object; data.log_out = true; $.ajax({ type: 'POST', url: 'http://www.mydomain.com/functi

我一辈子都搞不明白为什么会发生这种事

这是一种转载,所以请原谅我,但我有新的数据

我正在运行一个名为logOut()的javascript注销函数,该函数对php脚本进行了jQuery ajax调用

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');
        }
    });
}
$query = "INSERT INTO `token_manager` (`ip_address`) VALUES('POST FAIL')"; 
$connection->runQuery($query);
它调用的php函数如下:

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();
}
因此,现在我确定我的注销功能被跳过,因为我的数据库中有以下数据:

如果不跳过,我的数据将显示如下:

我知道跳过它有两个原因,一个是我的第一个函数结束时的die(),另一个是,如果成功,表中会注册一个“logOutSuccess”

有什么想法吗?一位朋友说这是一家简陋的托管公司(hostgator.com)。我个人喜欢它们,因为它们很便宜,而且我是cpanel的粉丝。但是,如果是这样的话

提前谢谢


-J

尝试在jquery$.ajax函数上启用错误报告,您的代码如下所示

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

看看这是否能说明您的情况。

尝试在jquery$.ajax函数上启用错误报告,您的代码如下所示

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

看看这是否能说明你的情况。

我强烈感觉这更多的是服务器端的问题,而不是客户端的问题

奇怪的是,你在一段时间内看到了这个问题。如果客户端可以正常工作,那么至少刷新页面或重新启动浏览器可以解决问题

函数末尾的die()是可疑的,但我不太确定它将如何影响它


顺便说一句,您可以在FireBug的“网络”选项卡中看到http头,以了解这些参数是否已正确发送。

我强烈感觉这更多是服务器端的问题,而不是客户端的问题

奇怪的是,你在一段时间内看到了这个问题。如果客户端可以正常工作,那么至少刷新页面或重新启动浏览器可以解决问题

函数末尾的die()是可疑的,但我不太确定它将如何影响它


顺便说一句,您可以在FireBug的“网络”选项卡中看到http头,以了解这些参数是否已正确发送。

好的,请关注

我删除了完整的URL 并将其替换为local path functions.php,这就成功了

显然,AJAX在跨域AJAX调用方面存在问题,而且我不在专用服务器上,所以我想象每两个小时(或几分钟)就会发生什么,我不知何故从不同的位置点击我的脚本,导致AJAX忽略POST数据


-J

好的,对于那些感兴趣的人来说

我删除了完整的URL 并将其替换为local path functions.php,这就成功了

显然,AJAX在跨域AJAX调用方面存在问题,而且我不在专用服务器上,所以我想象每两个小时(或几分钟)就会发生什么,我不知何故从不同的位置点击我的脚本,导致AJAX忽略POST数据


-J

你目睹了这一切吗?浏览器类型/版本是否重要?有人或物(蜘蛛/机器人)可能试图直接访问该php页面……这会导致它陷入“POST FAIL”状态。我知道谷歌机器人有时会访问我的php页面,这些页面只用于ajax@jack,这个网站仍处于开发阶段,所以我肯定这只是我,因为我是那个试图注销的人!我设置了注销失败查询,让我知道为什么我无法首先注销。谢谢你提供的信息,我一定会阻止爬行器访问该页面。@jack(第2部分)我起初以为它只是FireFox。。。但它也开始发生在Safari和IE中。嗯……Firebug给了你任何错误吗?另外,如果是我,我会尝试将data.log_改为“yes”之类的字符串,而不是布尔值。@jack Firebug没有报告任何错误。下次出现此问题时,我将尝试将data.log_更改为字符串。然后电脑就从窗口消失了。你目睹了这一切吗?浏览器类型/版本是否重要?有人或物(蜘蛛/机器人)可能试图直接访问该php页面……这会导致它陷入“POST FAIL”状态。我知道谷歌机器人有时会访问我的php页面,这些页面只用于ajax@jack,这个网站仍处于开发阶段,所以我肯定这只是我,因为我是那个试图注销的人!我设置了注销失败查询,让我知道为什么我无法首先注销。谢谢你提供的信息,我一定会阻止爬行器访问该页面。@jack(第2部分)我起初以为它只是FireFox。。。但它也开始发生在Safari和IE中。嗯……Firebug给了你任何错误吗?另外,如果是我,我会尝试将data.log_改为“yes”之类的字符串,而不是布尔值。@jack Firebug没有报告任何错误。下次出现此问题时,我将尝试将data.log_更改为字符串。然后电脑就从窗口消失了。谢谢你。。但我刚刚发现,这是因为“不在本地阅读”。出于某种原因,AJAX认为这是每隔几个小时进行一次跨站点呼叫。。。肯定是服务器问题。谢谢你。。但我刚刚发现,这是因为“不在本地阅读”。出于某种原因,AJAX认为这是每隔几个小时进行一次跨站点呼叫。。。肯定是服务器的问题。我刚弄明白并发布了答案。谢谢你的输入。我必须在那里抛出die()命令,以确保我的脚本不会继续运行,并在脚本末尾将“post FAIL”发布到数据库中。我只是找到了答案并发布了答案。谢谢你的输入。我必须在那里抛出die()命令,以确保我的脚本不会继续运行,并在脚本末尾将“post FAIL”发布到数据库中。您能否将您的答案标记为正确答案并关闭此问题?这样人们就不会认为你是性病患者