我正在使用带有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调用?
答案 0 :(得分:2)
如果.do_remote_sync
是超链接,就会发生这种情况。
单击超链接导航到其href
,取消任何有效的AJAX请求
添加alert()
会使AJAX请求有足够的时间在服务器发生之前将其发送到服务器。
您需要return false
来阻止导航。