软件系统开发定制ajax下window.location.href页面不跳转问题

目录

1.未放在form标签里面

解决办法:

把<input>标签放入<form>表单里面。

  1. <form>
  2. <!--登录按钮-->
  3. <div>
  4. <input id="login" type="button" value="登录" />
  5. <span><small>软件系统开发定制还没有账号?</small><a href="register.html">注册</a></span>
  6. </div>
  7. </form>

2.input标签里的"type"软件系统开发定制属性未设置,默认为"submit"

原因:

由于submit软件系统开发定制会自动提交表单而ajax是局部刷新,在触发事件的同时表单提交,从而导致捕捉到事件的时候下的username和password都为空。

解决办法:

把<input>里的"type"属性改为"button"。

  1. <form>
  2. <!--登录按钮-->
  3. <div>
  4. <input id="login" type="button" value="登录" />
  5. <span><small>还没有账号?</small><a href="register.html">注册</a></span>
  6. </div>
  7. </form>

3.引入js文件顺序错误

原因:

初学者写好js文件可能会直接在还未加载完html页面时就在头部引入自己写好的js文件。

解决办法

把引入js文件的位置挪到</body>标签结束的前一行。

  1. <!--登录按钮-->
  2.    <div>
  3.        <input id="login" type="button" value="登录" />
  4.        <span><small>还没有账号?</small><a href="register.html">注册</a></span>
  5.    </div>
  6. </form>
  7. <!--导入提交表单js文件-->
  8. <script src="../js/login.js"></script>
  9. </body>

4.ajax下的根路径错误

解决办法:

找到url的根路径正确设置。

  1. $.ajax({
  2.        url:"<!--根路径-->/users/login",
  3.        <!--其他代码-->
  4. })

5.window.location.href方法结构写错

解决办法:

  1. if (json.state === 200){
  2.                alert("登录成功!即将跳转到主页...");
  3.                window.location.href = "index.html";
  4.           }else
  5.                alert("登录失败!" + json.message);

附上笔者代码:

html:

  1. <!DOCTYPE html>
  2. <html lang="en-us">
  3. <head>
  4. <meta charset="UTF-8">
  5. <!--edge浏览器H5兼容设置-->
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <title>登录</title>
  8. <meta name="viewport" content="width=device-width, initial-scale=1">
  9. <!--导入核心文件-->
  10. <script src="../js/jquery-1.9.1.min.js"></script>
  11. </head>
  12. <body>
  13. <div>
  14. <p>用户登录</p>
  15. <!--表单开始-->
  16. <form id="form-login" role="form">
  17. <!--用户名-->
  18. <label for="username">名字:</label>
  19. <div>
  20. <input id="username" name="username" type="text">
  21. </div>
  22. <!--密码-->
  23. <label for="password"> 密码:</label>
  24. <div>
  25. <input id="password" name="password" type="text">
  26. </div>
  27. <!--登录按钮-->
  28. <div>
  29. <input id="login" type="button" value="登录" />
  30. <span><small>还没有账号?</small><a href="register.html">注册</a></span>
  31. </div>
  32. </form>
  33. </div>
  34. <!--导入提交表单js文件-->
  35. <script src="../js/login.js"></script>
  36. </body>
  37. </html>

js:

  1. $("#login").ready().click(function (){
  2.    let username = document.getElementById("username").value;
  3.    let password = document.getElementById("password").value;
  4.    if (username.replace(/\s*/g,"") === ""){
  5.        alert("用户名不能为空!");
  6.        return;
  7.   }
  8.    if (password.replace(/\s*/g,"") === ""){
  9.        alert("密码不能为空!");
  10.        return;
  11.   }
  12.    $.ajax({
  13.        url:"/canteen/users/login",
  14.        type:"post",
  15.        data:$("#form-login").serialize(),
  16.        dataType:"json",
  17.        success:function (json){
  18.            if (json.state === 200){
  19.                alert("登录成功!即将跳转到主页...");
  20.                window.location.href = "index.html";
  21.           }else
  22.                alert("登录失败!" + json.message);
  23.       }
  24.   })
  25. })

以上就是笔者总结window.location.href页面不跳转的几种情况

如有错误,恳请指正!

如需转载,请标明出处。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发