javascript - 在方法里 window.location.href 不会立即跳转,有什么方法解决
欧阳克
欧阳克 2017-06-26 10:58:15
[JavaScript讨论组]

疑问:为何不是执行 location.href = "../exit.html";, 而是执行了 window.location.href = 'http://www.baidu.com';

有什么办法执行完 getData(), 如果获取数据失败,则跳转到 ../exit.html, 不再执行 gourl(); 方法呢?

补充:ajax里面的 async: false 是同步请求!!!,这个只是一个简单的demo,实际上getData()方法后面可能有很多逻辑,但是如果getData()获取数据失败,就不让程序再执行其他的方法,而且其他的方法不一定在同一个文件里面。






    



    

我是测试页面,看我是否发生跳转

欧阳克
欧阳克

温故而知新,可以为师矣。博客:www.ouyangke.com

全部回复(4)
女神的闺蜜爱上我

那你可以在getData方法success后再回调gourl进行你要的逻辑处理
另外 不清楚你的is_success是具体怎么判断 因为有$ajax也有对应的error

为情所困

gourl()函数不可以在前面调用,而应该放在Ajax的逻辑中间,在if逻辑后面添加 else{gourl();}
即:

if (!is_success) {
        location.href = "../exit.html";
    }else {
        gourl();
    }
某草草

既然getDatagourl有执行的关系,要么把gourl放到回调判断 这个是可以适合异步的。
如果是题主的同步,那么还可以

    $(function() {
        getData();
        gourl();
    });

直接在这里控制Gourl要不要执行也可以把?

三叔

你的代码逻辑有问题吧,ajax是异步的呀。gourl();这个函数不应该在那个地方调用。可以在ajax请求的成功或者失败回调里调。
看你的要求应该是在success里面调用。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号