实际项目中html跳转无响应原因及解决方案总结 | 您所在的位置:网站首页 › 网页中的超链接可以链接到什么 › 实际项目中html跳转无响应原因及解决方案总结 |
博主自学框架不久,经验不多,导致出现非常多的细节,低级问题。本着不要脸精神,为广大自学同胞提供一些低级错误的错误原因以及解决方案。以下带来 springmvc框架下前端html中window.location失效的原因以及解决方案。 首先普通html中window.location跳转失败的原因有以下几个:1.js中代码字符错误。 2.触发跳转的控件在form表单中或者在submit控件中跳转。 对于上述两个问题的解决方式:1.正确js如下,请认真核对。 function test(){ alert("测试"); window.location="www.xxx"; }2.在使用form表单时,可以直接使用form表单中 action=“”属性进行跳转,如果此方法不能满足需求。可以将form表单 改为 div,然后将submit改为button。 以上普通html中跳转失败,无响应问题百度基本上都有,下面介绍重点。 对于在实际项目中,跳转后,html中window.location失效的原因 对于实际项目中。做了登录验证, 当未查询到session,即未登录情况下,访问任何地址都会转发到localhost:8180/sys/toLogin然后返回login.html登录页面。但这个方法下的跳转后的地址是 原来用户输入访问的路径,用代码验证,跳转钱输出 window.location 信息 观察如上两张图,可有看出,当用户连接时间超时,或者被管理员踢下线时,用户再次刷新页面,或者直接访问localhost:8180/html/main.html时候,是会直接转发到login页面,但地址依据是localhost:8180/html/main.html。此时用户进行登录操作, 此句代码是相当于不执行的。所以会出现正确登录,但却无法跳转到main.html页面两个解决方案 1.进行判断,清空window.location 但以上方案并不完美。 2.从根源出发。我们首先要明白,重定向和跳转,区别和概念自行百度,博主不过多赘述(其实我也不是很懂),其中转发地址栏没有变化,而重定向地址栏有变化,这个区别是关键。在servlet中调用重定向的语句如下: response.sendRedirect("new.html");//重定向到new.html 根据此句,将项目中登录验证中转发改为重定向。 输入localhost:8180/html/main.html 返回页面如下 其中地址也变成了固定的localhost:8180/sys/toLogin 此时,window.location就可以正确跳转了。 ps:第一次写博客,有点紧张,若是文中存在错误,欢迎各位大佬指正。谢谢 |
CopyRight 2018-2019 实验室设备网 版权所有 |