解决http响应状态为canceled

最近写登录的页面,发现通过ajax请求后台的时候,监控台返回该请求的状态是canceled。

原因

仅仅是由于之前为了在输入账号时让浏览器进行自动补全,而将原先的div更换为了form,而不巧的是之前的登录事件源使用的是button。

而至于为什么status = canceled,是由于在提交时,form action与绑定于button上的click事件会同时触发。form action将表单内容以serach的形式追加至当前url上,url变更后会导致页面重新加载, 而这正是导致post请求在执行后就被终止的原因。

解决方案

form.on("submit(login)",function(data){
        $.ajax({
             url:"/schema/login",
             data:{
                 username:data.field.username,
                 password:data.field.password
             },
             dataType: "json",
             contentType: "application/json; charset=utf-8",
             async:false,
             success:function (res) {
                if("success" == res){
                   window.location.href = "../index.html";
                   return false;
                }
             },
             error:function (res) {
                alert("失败,请重新登录!");
             }
         })
		return false;
	})

最后发现是ajax请求默认是异步的。我把请求改成同步的就行了。设置如下参数:async: false。

其他文章,欢迎关注微信公众号测试架构师养成记
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值