0

ajax請願に問題があります。次のような機能があります

function do_ajax (params, url, callback) {
    $.ajax({
        url: url,
        type: 'post',
        data: params,
        success: function (response){
            try{
                var obj = $.parseJSON(response);
                callback(obj);
            }catch(e){
                alert('Cannot connect');
            }
        },
        error: function (jqXHR, textStatus, errorThrown){
            alert('err');
            console.log(jqXHR)
            console.log(textStatus)
            console.log(errorThrown)
        }
    });
}

私はそれを

function verificar_atenciones_paciente (p) {
    progress();
    do_ajax('', '<?php echo base_url(); ?>index.php/some/where/'+p.id, callback);
}

function callback (obj) {
    var table = $('#table tbody')
    var t = false;
    table.empty();
    if (0 == obj.length){ return; }
    $(obj).each(function (key, value){
        if (value.f){
            tiene = true;
        }else{
            alert('Redirect');
            window.location.href = '<?php echo base_url(); ?>index.php/some/where_else/'+value.id;
            return;
        }
        var tr = to_row(value);
        table.append(tr)
    })
    if (tiene_fac){
        alert("Found!");
    }else{
        alert("Not Found!")
    }
    $('#list').fadeIn();
    done();
}

私の問題は、リダイレクト ( window.location.href = '<?php echo base_url(); ?>index.php/some/where_else/'+value.id;) が呼び出されたときに発生します。バックグラウンドで ajax が実行され、ajax 要求 ( alert('Cannot connect');) のエラーが表示されます。

私は PHP、Code Igniter、JQuery を使用しています。

前もって感謝します

4

3 に答える 3

0

このページはJSONを返していますか?

<?php echo base_url(); ?>index.php/some/where/'+p.id

そうでない場合はparseJSON、例外をスローする可能性があります。JSONを返してみてください

echo '{"f":{"test":1},"test2":1}';

トリックを行う必要があります。

また、開発者ツールを使用して進行状況を簡単に確認できるようにするため、 alert()「」を「」に変更します。console.log()

于 2012-12-28T18:17:55.610 に答える
0

設定してみるとよい

async: false 

これにより、リクエストが完了するまで保持されます。

于 2012-12-29T17:09:38.777 に答える
0

ajax リクエストは、行テーブルのクリック イベントにバインドされます。投稿されるフォームはありません ( onsubmit="return false;")。setTimeOut を使用して回避し、2 秒後にリダイレクトを呼び出して、ajax ポスト チェーンを終了させました。問題は、ajax リクエストが突然中断され、例外がスローされることだと思います。リクエストを遅らせるので、ajaxリクエストを正常に終了させ、後でリダイレクトを行います。他の提案があれば幸いです。ご協力ありがとうございます。

于 2012-12-28T19:38:21.750 に答える