php exec命令在ajax调用中不起作用

时间:2013-06-04 13:48:35

标签: php jquery ajax exec

我正在使用带有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”命令,则alert("after ajax");页面仅 被调用。

如果我注释掉这一行,很可能不会调用ajax调用!

如果直接调用,sync_remote.php页面可以正常工作。

问题

为什么没有“alert”命令就不执行ajax调用?

1 个答案:

答案 0 :(得分:2)

如果.do_remote_sync是超链接,就会发生这种情况。

单击超链接导航到其href,取消任何有效的AJAX请求 添加alert()会使AJAX请求有足够的时间在服务器发生之前将其发送到服务器。

您需要return false来阻止导航。