为什么ajax请求被中止....?

时间:2013-05-24 11:41:14

标签: php ajax jquery

我正在向服务器发送ajax请求

$.ajax({
    type: "POST",
    data: checkin_push,
    url: api_url + 'file.php?token=' + last_token + '&date=' + dated,
    dataType: "json",
    timeout: 100000, // 100 seconds
    success: function(data) {
        // invoke sync
        api_pending_sync = true;            
        // checkin back to home
        $.mobile.changePage('#home', { reverse: true });
        //api_sync_message
        $('#sync-message').fadeIn(300).html('<div class="ui-body ui-body-e ui-corner-all" style="margin-bottom: 20px;" data-theme="d">Successfully checked in for ' + checkin_display_date() + '.</div>').fadeOut(5000);
    },
    complete: function(jqXHR, textStatus) {
        $.mobile.hidePageLoadingMsg();
    },
    error: function() {
        $('#checkin-status-message').fadeIn(300).html('<div class="ui-body ui-body-e ui-corner-all" style="margin-bottom: 20px; color: red;" data-theme="d">Unable to Check In, Please check your internet connection and try again.</div>').fadeOut(5000);
    }
});

这是file.php的相关代码

     =========rest code -=================

    #------------------- send alert to life lines (send alerts) -------------------

$query = query("SELECT email, phone, sms_carrier FROM table WHERE account_id = ".escape($account_id));
if ((mysqli_num_rows($query) > 0) and $send_alert) 
{
   while ($l = mysqli_fetch_assoc($lifelines)) 
   {

           // send mail 
           /* this function is returning value of mail() function*/
       send_alert_email($userEmail, $sms_email, 'alert-2');

   }
}
#-------------------------------(/alerts)--------------------------------------

$return = array('answers' => $answers); //, 'transact' => $checkin_transact);
 }

 json_out($return);

 ?>

现在究竟发生了什么......如果控制进入,而循环和电子邮件正在发送,则firebug显示状态为“已中止”,否则它工作正常... 我做错了什么..

提前致谢

2 个答案:

答案 0 :(得分:1)

可以替换以下行:

error: function() {

以下内容:

error: function(jqXHR, textStatus, errorThrown){

并检查textStatuserrorThrown的值,以查看请求中止时的错误。

希望这有帮助。

答案 1 :(得分:0)

 $.ajax({
    type: "POST",
    data: checkin_push,
    url: api_url + 'file.php?token=' + last_token + '&date=' + dated,
    ...

您正在发送GET和&amp; POST参数。所以,只是想确保您没有获得null任何参数。

在file.php中,

确保将tokendate值设为$_GET

&安培; checkin_push已将参数值发送为$_POST

将所有已发送的参数值设为$_REQUEST