0

PHP の curl を使用してファイルをアップロードするコントローラーの 1 つに AJAX 要求を送信するフォームがあります。その (PHP) アップロードのステータスをユーザーに表示したいので、PHP アップロードの進行状況をセッション変数に保存します。一方、フォームの送信も開始され、セッション変数をチェックするコントローラーsetInterval()に対して別のAJAX 要求が行われます。私の問題は、2 番目の AJAX 呼び出しが (アップロード プロセス全体ではなく) 1 回しか発生しないように見えるため、進行状況を徐々に更新する代わりに、最後に 100 を返すことです。私は何を間違っていますか?

これが私のコードです:

(注:ファイルのアップロードを支援するためにjQueryフォームプラグインを使用しています。また、いくつかの追加のコールバックを追加します)

<script>
var check_progress = function() {
    $.ajax(
        {
            url : '/media/upload_progress',
            success : function(data) {
                console.log(data);
                },
            async : false

        }
    );    

var options = {
    beforeSend : function() {
        $("#MediaSubmitForm").hide();
        $("#MediaSubmitForm").after('<img class="hula-hippo" src="/img/hippo-hula.gif" />');

        t = setInterval( check_progress, 500 );

    },
    success : function(data){
        $(".hula-hippo").hide();
        $("#MediaSubmitForm").after("<h3>Upload complete!</h3><p>Do <strong>you</strong> want to <a href='#'>create a project</a> of your own?</p>");
        window.clearInterval(t);
        console.log(data);
    }    

};
$("#MediaSubmitForm").ajaxForm(options);
</script>
4

2 に答える 2

0

これは PHP のロックの問題のようです。この質問への回答の最初のコメントを参照してください。

jQuery:同時Ajaxリクエストを行うことは可能ですか?

于 2013-07-26T21:51:22.837 に答える