我有这段代码:
getClients(id);
location.replace('/login/index.html');
我的getClients()
功能基本上是 asyc AJAX
请求。
如果客户列表为空,则会重定向到另一个页面。这里是ajax请求中的代码 :
....
success: function(data){
var json2 = $.parseJSON(JSON.stringify(data.result));
$.cookie('usu', id, {path: '/'});
if(json2.length < 2 && json2[0].UserClients.length === 0){
location.replace('/login/user_config.html');
return false;
}
else{
....
但不知何故,如果客户对象为空,则首先执行location.replace('/login/index.html');
,然后执行location.replace('/login/user_config.html');
如何解决?
答案 0 :(得分:0)
由于此过程是动态的,您需要等待AJAX响应,所以我认为您可以使用 Loader 并在向AJAX发送请求之前调用它,如果您的条件不匹配那么那个案例隐藏了显示器的装载程序。
短代码可以帮助您,
beforeSend:function(){
// init loader here
},
success: function(data){
var json2 = $.parseJSON(JSON.stringify(data.result));
$.cookie('usu', id, {path: '/'});
if(json2.length < 2 && json2[0].UserClients.length === 0){
location.replace('/login/user_config.html');
return false;
}
else{
// stop loader here
答案 1 :(得分:0)
使用@Carcigenicate建议使用回调解决了问题。
结果代码如下:
getClients(id, location.replace('/login/index.html'));
请大家帮忙。