哔哩哔哩 - ( ゜- ゜)つロ 乾杯 2021-08-13 03:28 采纳率: 50%
浏览 887
已结题

求解答啊,window.location.href=页面跳转不生效,

window.location.href,页面跳转没有生效,呜


                        //发送POST异步请求
                        $.post("registerServlet",$(this).serialize(),function (data) {
                            //处理服务器返回的数据data,{flag,true,errorMsg:"注册失败"}'
                            if (data.flag){
                                //成功注册
                                alert("chenggong");
                                //跳转页面,这一行代码没有生效,很奇怪
                                window.location.href="http://localhost:8080/travel/register_ok.html";
                                //这一行就可以正确执行
                                document.write(location.href);
                            }else {
                                $("#errorMsg").html(data.errorMsg);
                            }
                        });
  • 写回答

6条回答 默认 最新

  • CSDN专家-showbo 2021-08-13 03:43
    关注

    去掉document.write(location.href);这句,由于是异步的,文档流已经关闭,document.write会覆盖掉当前的所有内容包含js脚本,有些浏览器可能做了优化,导致没跳转。chrome 92和Firefox91测试都无法跳转

    去掉了document.write和alert语句只保留location.href还不能跳转?setTimeout延时跳转只在几年前旧版本浏览器上出现这种解决办法,新版本暂时没发现你这种问题,题主什么浏览器?

    有帮助或启发麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    修改代码之后确实不用延时就可以实现跳转了,谢谢,

    
                            //发送POST异步请求
                            $.post("registerServlet",$(this).serialize(),function (data) {
                                //处理服务器返回的数据data,{flag,true,errorMsg:"注册失败"}'
                                if (data.flag){
                                    //成功注册
                                    //alert("chenggong");
                                    //跳转页面,这一行代码没有生效,很奇怪
                                    window.location.href="http://localhost:8080/travel/register_ok.html";
                                    //window.setTimeout("window.location='register_ok.html'",500);
                                    //这一行就可以正确执行
                                    //document.write(location.href);
                                }else {
                                    $("#errorMsg").html(data.errorMsg);
                                }
                            });
    

    这是我的浏览器版本,确实如您说的一样

    img

    回复
查看更多回答(5条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月20日
  • 已采纳回答 8月13日
  • 创建了问题 8月13日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部