首先jQuery的常用异步请求分为两个
$.ajax({url,type,data,dataType,success,error});
在我现在学习状态下,我采用的一个方式是:
$.ajax({
url:"url",
type:"POST",
data:{"phone": phone.val()},
dataType: "json",
success:function (data) {
if (data.status == -1){
/* layer插件的一个方法 */
layer.msg(data.msg,{
icon:5,
shift:6
});
return;
}
layer.msg("验证码发送成功!",{
icon: 1,
shift: 1
});
settime(getsmsbtn);
},
error:function (data) {
layer.msg("发送失败!请重试",{
icon: 5,
shift: 6
});
}
});
姿势:ajax在异步提交的时候给了两个有用的东西;
1、success:function(data){console.log(data)} 服务器返回200code的时候,我可以在里面撒泼;
2、error:function(data){console.log(data)} 服务器返回 400,500code的时候,我也可以再里面撒泼;
$.POST(url,data,function(result){ console.log(result) },dataType);
在现在学习的状态下,我测试了一个方式是:
var phonevlue = phone.val();
var url = "user/getsms";
var data = {"phone":phonevlue};
/* 验证码获取 ajax的Post方法提交 */
$.post(url,data,function(result){
console.log(typeof result);
console.log(result.status);
alert(result);
},"json");
姿势:在post方法中dataType(数据类型)设置在最后一项中,指定了json格式
但是 but 我出错了,回调出来的result虽然能够log出来,但是用result.status却调不出来json内容属性;
原因:服务端返回的数据虽然为json格式,但是在js里面没有对json格式进行解析。
解决:我还是没能找到js中解析json的方法,但是我在服务端(php)操作方法返回时用了exit(json_encode($result));从此返回的log出来之后是一个obj,通过这样通过result.status就可以读取返回状态来进行登录、注册的提示信息显示了。
传送门