0

我正在使用带有 ajax 的 jQuery 2.0.2 来调用一个 php 页面,该页面执行一个命令来启动一个 java 客户端:

        $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如果直接调用该页面,则该页面可以正常工作。

问题

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

4

1 回答 1

2

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

单击超链接导航到它的href,取消任何活动的 AJAX 请求。
添加 an 可以alert()让 AJAX 请求有足够的时间在此之前将其发送到服务器。

您需要return false阻止导航。

于 2013-06-04T13:50:37.390 回答