代码逻辑相关
- js控制表单不自动提交
$('#register_form').submit(function (e) { e.preventDefault(); });
-
在我登录成功进行跳转的时候,发现CI框架有一个毛病,那就是外部引入的js文件使用ajax时的url不可控
//校验通过则发送请求 $('#login_btn').click(function () { if (global_account && global_password && global_captach){ $.ajax({ type:"POST", url:"login", data:{"account":global_account,"password":global_password}, dataType:'json', success:function (data) { if(data.error_code != 0){ $('#login_tips').val('账户名/密码不正确').show().fadeOut(tips_show_time); }else { window.location.href= $('#home_url').attr('href'); } }, error:function (err) { $('#login_tips').val('网络错误').show().fadeOut(tips_show_time); } }); }else if(!global_account || !global_password){ $('#login_tips').val('请输入要注册的账户名/密码').show().fadeOut(tips_show_time); }else if (!global_captach) { $('#login_tips').val('请输入验证码').show().fadeOut(tips_show_time); } })
在这个外部js文件中,url是Controller里Login.php下的login方法名,这样写url可以请求成功,请求地址也正确,可是若你想跳转到feed下的index,那就无法跳转了,请求成功后,服务器将页面返回在了http的Preview里,无法进行页面跳转,很头痛,在网上找了各种方法都没有解决。
后来想到一个办法,那就是在前端页面里设置一个锚点
<a href="<?php echo site_url('feed/index')?>" id="home_url"></a>
在js文件里获取这个锚点的路径,然后使用js跳转,这样就可以实现跳转了