一、发现问题
调用注册时,接口后台都已经执行完毕,并且成功。但是只要使用ajax调用的时候显示无法加载响应数据。找不到具有给定标识的资源的数据。
二、分析问题
使用postman调用也是有数据的。使用ajax时返回没有响应。
说明是前端返回值的问题。。
而且他调用的时候是取消状态。
通过查阅资料,可得出form表单可能action影响了ajax操作。
修改之后果然成功返回。
三、解决问题
一、将ajax改为同步:async: false.
$.ajax({
type:"POST",
url:"/user/register",
data:$("#fm").serialize(),
async: false,
success:function(resp,status){
if(status == "success"){
}
},
error:function(xhr,errorText,errorType){
alert("error")
if(xhr.status == 401){
//do something
}
}
});
二、将受影响的<button> 移出form表单外。
<form></form>
<div class="layui-form-item">
<button class="layui-btn layui-btn-fluid" lay-submit lay-filter="demo-login" onclick="register()">注册账号</button>
</div>
三、修改button按钮的类型
<button onclick="register()" type="button">注册账号</button>
表单内的button在未制定类型时,默认是submit.