0

私はajaxでjQuery 2.0.2を使用して、コマンドを実行してJavaクライアントを起動するphpページを呼び出しています。

        $j(document).ready(function(){
            $j(".do_remote_sync").on("click",function(event) {                       
                var d = "";
                $j.ajax({
                    data: \'test=test2\',
                    type: \'POST\',
                    url: \'sync_remote.php\',
                    success: function(data) {
                        d = data;
                    }
                });                        
                //alert("after ajax");
            });
        });

このsync_remote.phpページには次の行のみが含まれています。

exec("java -jar RemoteSync.jar config.properties", $output, $return_var);

問題は、ajax 呼び出しの後に「アラート」コマンドを記述した場合にのみsync_remote.phpページが呼び出されることです ( )。alert("after ajax");

この行をコメントアウトすると、おそらく ajax 呼び出しは呼び出されません!

直接呼び出すと、sync_remote.phpページは問題なく動作します。

質問

「アラート」コマンドなしでajax呼び出しが実行されないのはなぜですか?

4

1 に答える 1

2

これ.do_remote_syncは、 がハイパーリンクの場合に発生します。

ハイパーリンクをクリックすると、そのhrefに移動し、アクティブな AJAX リクエストがキャンセルされます。
を追加するalert()と、AJAX リクエストがサーバーに到達するまでに十分な時間が与えられます。

return falseナビゲーションを防止する必要があります。

于 2013-06-04T13:50:37.390 に答える