ajax异步请求的一些经验姿势

2018-09-02  本文已影响0人  卡地亚克思

首先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就可以读取返回状态来进行登录、注册的提示信息显示了。

传送门

上一篇 下一篇

猜你喜欢

热点阅读