在Ajax中调用setCookie失败,IDE却无任何错误

最近做项目,因为这个小错误耽搁了好久,特此记录

前端部分代码:

把表单内代码简化为

<form id="login-form" method="post">
    <input type="text" placeholder="请输入您的用户名" class="form-control required" name="username" id="username" tips="请填写用户名" />
    <input type="password" placeholder="请输入密码" class="form-control required" id="password" name="password" tips="请填写密码" />
    <input type="text" name="cpacha" id="cpacha" maxlength="4" class="form-control required" placeholder="验证码" tips="请填验证码" >
</form>

想利用ajax判断用户名是否存在时设置Cookie,js代码如下

<script src="admin/js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="admin/js/bootstrap.min.js"></script>
<script src="admin/js/util.js"></script>
<script type="application/javascript"></script>
<script type="text/javascript">
  $(document).ready(function(){
    $("#submit-btn").click(function(){
      if(!checkForm("login-form")){
        return;
      }
      var user={};
      user.username= $("#username").val();
      user.password =$("#password").val();
      user.cpacha = $("#cpacha").val();

      $.ajax({
        url:'/system/login',
        type:'POST',
        //data:{username:username,password:password,cpacha:cpacha},
        data:user,
        dataType:'json',
        success:function(data){
          if(data.code == 0){
            alert("setCookie前");
            setCookie("user",data.content,1);
            alert("setCookie后");
            window.location.href = 'index';

          }else{
            showErrorMsg(data.msg);
          }
        },
        error:function(data){
          alert('网络错误!');
        }
      });
    });
  });

</script>

setCookie()方法在util.js中,可执行时一直无法设置cookie的值,而且造成login页面发生不了跳转,但后台能够匹配成功。

结果如图:

IDE无任何错误

 但当我打开浏览器,按F12进入控制台,发现了一些端倪

 login页面的js文件全部爆红,其中有一行字,更是引起了我的警觉。

Uncaught ReferenceError: setCookie is not defined

setCookie没有定义,

于是按着Ctrl单击鼠标,发现可以进入util.js

function setCookie(name, value, days) {
    var d = new Date;
    d.setTime(d.getTime() + 24*60*60*1000*days);
    window.document.cookie = name + "=" + value + ";path=/;expires=" + d.toGMTString();
    //console.log(name + "=" + value + ";path=/;expires=" + d.toGMTString())
    var strCookie=window.document.cookie;
     alert("function setCookie里"+strCookie);
}

setCookie方法也有定义。正在我百思不得其解时,突然想起是不是javaScript是不是在页面中有执行顺序,于是把

<script>XXX</script>

放在了最前面

但仍然还是这个问题。

在我快要崩溃的时候,灵光一现,仔细一想,是不是 路径引用出错

 查看文件夹层次

 把<script></script>内src加“/"

即:

<script src="/admin/js/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/admin/js/bootstrap.min.js"></script>
<script src="/admin/js/util.js"></script>
<script type="application/javascript"></script>

 完美运行!!!!

猜你喜欢

转载自blog.csdn.net/qq_30336973/article/details/124414252