我有一个需要登录的服务器端功能。如果用户已登录,则函数将在成功返回1。如果没有,该函数将返回登录页面。
我想使用Ajax和jQuery调用该函数。我要做的是使用普通链接提交请求,并应用点击功能。如果用户未登录或功能失败,我希望Ajax调用返回true,以便href触发。
但是,当我使用以下代码时,该函数在Ajax调用完成之前退出。
如何将用户正常重定向到登录页面?
$(".my_link").click( function(){ $.ajax({ url: $(this).attr('href'), type: 'GET', cache: false, timeout: 30000, error: function(){ return true; }, success: function(msg){ if (parseFloat(msg)){ return false; } else { return true; } } }); });
如果您不希望$.ajax()函数立即返回,请将async选项设置为false:
$.ajax()
async
false
$(".my_link").click( function(){ $.ajax({ url: $(this).attr('href'), type: 'GET', async: false, cache: false, timeout: 30000, error: function(){ return true; }, success: function(msg){ if (parseFloat(msg)){ return false; } else { return true; } } }); });
但是,我要指出的是,这与AJAX的观点背道而驰。另外,您应该在error和success函数中处理响应。仅当从服务器收到响应时,才调用这些功能。
error
success