php
  • ajax
  • jquery
  • 2013-05-24 2 views 0 likes 
    0

    Я посылаю запрос Ajax на серверПочему запрос 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); 
    
    ?> 
    

    Теперь, что именно происходит, .. если управление приходит в то время как петля и электронная почта получают отправить поджигатель показывает статус «прерванную» в противном случае он работает нормально ... что я делаю неправильно ..

    заранее спасибо

    +0

    Иногда отправка электронной почты занимает много времени (и вы отправляете многие из них), поэтому, возможно, вы превысите время выполнения php. – Kasyx

    +0

    нет таких функций, как json_out и escape, если они не определены вами? – Ziarno

    +0

    u может протестировать php-файл с образцом POST-формы, чтобы быть уверенным, что он работает нормально –

    ответ

    1

    Вы можете заменить следующую строку:

    error: function() { 
    

    следующим:

    error: function(jqXHR, textStatus, errorThrown){ 
    

    и проверить значение textStatus и errorThrown, чтобы увидеть, что была ошибка, когда запрос прерывается.

    Надеюсь, что это поможет.

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

    Вы отправляете оба параметра GET & POST. Итак, просто хочу убедиться, что вы не получаете null для любого параметра.

    В file.php,

    убедитесь, чтобы получить значения token и date в $_GET

    & checkin_push посылаемых параметров значений в $_POST

    или

    получить все переданные значения параметров как $_REQUEST

    Смежные вопросы