zoukankan      html  css  js  c++  java
  • 前后端交互实现

    1.古老的表单提交
    这种形式呢,比较早,以后端为主。前端提交表单,后端验证(jsp,request.getParameter(""))。这种方式后端做的比较多,我就不特别说明了。
    2.AJAX的数据提交
    这种形式呢,现在用的较多。后端基本就做接口,做权限,其他的都交由前端去完成。这个呢就是我们今天主要说的。
    3.表单和AJAX结合
    适合的才是最好的。这点我深信不疑

    常见的几种方式,我已经说明了。接下来我们谈一谈我们需要什么东西。
    场景一:

    XXX:我们公司要做接口,我要怎么办?
    LN:哦,接口文档发我看看。
    XXX:什么是接口文档,我没有啊?
    LN:接口文档由四部分组成:(这个看个人习惯有的写得特别简陋,所以第一次的时候问清楚每个参数意思)
        1.接口地址 URL
        2.请求方式 get/post
        3.请求参数 page,pageNum
        4.响应参数 state,list
    XXX:哦哦,这样啊,那我和他们要一下。
        接口:/mvc/training/ge
        请求:key,orderBy,begin,length
    LN:没给你响应,也没有给你请求方式啊。
        1.给接口补全URL,域名/mvc/training/ge。
        2.把你补全的URL,扔到浏览器的地址栏,看看返回的是什么。当然如果请求参数里面有必填项,那你要用URL?key=value&key2=value2的形式模拟get请求。
            2.1 浏览器把服务器端的响应给你显示了出来。然后你对照这个问后端人员每个是什么意思。
            2.2 抛出405错误。这个就比较凄惨了。禁止get请求,那你有两种方式一个是下载一款软件可以模拟post请求,一个是直接写AJAX,然后改成post方式。
        3.由上面我们已经知道接口的四部分了,那我们就要用ajax获取我的数据了.
         $.ajax({
                 url: "/mvc/training/ge",//请求接口
                 type: "POST",//请求方式
                 data: {key:1},//请求参数
                 dataType: "json",//响应类型
                 success: function(data, textStatus){//访问成功的回调函数,参数是响应,描述状态的字符串
                     console.log(data);
                 },
                 error: function(XMLHttpRequest, textStatus, errorThrown){//访问失败的回调函数,参数是XMLHttpRequest对象、错误信息、捕获的错误对象(可选);
                 }
        });
        个人大力推荐这个,第二步就可以省去了。success的console.log(data);也可以看到响应,完美的剧情。当然,你不要告诉我,你不会看控制台。
    XXX:恩恩。好的。我试试去。    

    场景二:
    XXX:这是我的接口。我要怎么做我的页面啊。逻辑怎么写。

    LN:

    $.ajax(
        method:"GET",//对于请求类型
        url:"/isNickName",//请求url,这个我抹黑了。直接复制过来就可以了
        dataType: 'json',
        data: {nickName:$.trim($("#checktips").val())},//这个是一个验证是否重名的接口。参数只有一个 名字
    ).done(function(data){
        if(data.code == 0){//data.code的值这个是后端人员规定的。
            console.log("请求成功");
            if(data.object==1){//1为重复
                console.log("这个nickName重复啦");
                $("#retips").show();
            }else if(data.object==0){
                console.log("这个nickName不重复");
                $("#retips").hide();
            }else{
                console.log("未知异常");
            }
        }else if(data.code == -2){
            console.log("你没有权限,通常来讲,你是没有登录");
        }else if(data.code == -5){
            console.log("参数错误哦。");
        }else{
            console.log(data.result);
        }
    }).fail(function(a,b,c){
        console.log("接口出问题啦");
    })

    我简单的解释一下上面这个代码,.done()里面的代码肯定每次都不一样。所以说肯定不能网上随便复制一个就可以,和公司的后端人员问清楚每一个参数的作用意义,对于写代码是特别有帮助的。从接口文档可以看出,这个人后端十分的懒,我所有的参数都是访问了以后然后自己猜出来的。

    场景有上面的两个,我觉得已经可以了。就不在写了

    文章的最后我们来说一下 调用 和 .done事件里面的代码 虽然这两个没有关系。

    1.调用
        最简单的调用方法$(selector).on("click",function(){里面放刚才场景二的代码})。
        但是我们有的时候用的不是click.
        blur 失去焦点的时候触发
        change 失去焦点然后判断是否改变,改变触发
        keyDown keyup 按下抬起(这个是最好的,但是要用去抖,下一篇说)
    2.done(function(){})
        这个里面一般来说,就是我们用得到的数据去和我们的DOM节点做一些操作。这个每个项目都不一样。但是肯定都和DOM的操作啦渲染啦有关。
        
        

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 相关阅读:
    install git on ubuntu
    deploy uwsgi with niginx on ubuntu
    ubuntu下部署solr
    solr relevent project
    20100722
    [Programming Visual C++]Ex05cCScrollView Revisited
    iter_test
    交友类节目
    install scrapy on windows
    20100703
  • 原文地址:https://www.cnblogs.com/mahmud/p/10607007.html
Copyright © 2011-2022 走看看