Ajax

  • ajax 是什么?有什么作用?
  • ajax是Asynchronous JavaScript + XML的简写。是一项能够向服务器请求额外的数据而无须重新加载页面的技术。
  • 前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?(npm install -g server-mock) 知识点视频-如何 mock 数据
  • 注意事项:
    1 约定数据格式。
    1 根据功能制定前后端接口,约定参数和返回值。
    2 根据接口构建Mock Server工程及其部署。
    3 前后端独立开发,前端向Mock Server发送请求,获取模拟的数据进行开发和测试。
    4 前后端都完成后,前后端连接调试
  • Mock Server可以部署在本地,也可以部署到远程服务器。
    1 把Mock Server工程部署到一个远程远程服务器上,前端开发的时候向该服务器发请求。
    2 把Mock Server克隆到本地,开发的时候,开启前端工程服务器和Mock Server,所有的请求都发向本地服务器,获取到Mock数据。
  • 点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?
  • 设置一个变量flag用来判断按钮的点击状态,当用户点击按钮时flag变量被赋值为点击状态,直到ajax完成后flag变量被重新赋值为未点击状态,可再进行点击。
        var flag = 0;//未点击状态
        el.addEventListener('click', function(){
            if (flag) { return; }
            flag = 1;//点击状态
                ajax({
                    //代码。。。
                    succss:function() {
                        flag = 0;//ajax处理完毕重新赋值为点击状态
                        //代码。。。
                    }
                    error:function() {
                        flag = 0;//ajax处理完毕重新赋值为点击状态
                        //代码。。。
                    }
                    //代码。。。
                })
        })
代码
  • 封装一个 ajax 函数,能通过如下方式调用
        function ajax(opts){
            var xmlhttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {//执行四次握手,2000为成功
                    var json = JSON.parse(xmlhttp.responseText);//解析返回的数据
                    opts.success(json);
                }
                if (xmlhttp.readyState == 4 && xmlhttp.status == 404) {//四次握手后才进行404判断,不会出现多次请求
                    opts.error();
                }
            }
            var dataStr = '';
            for (var key in opts.data) {
                dataStr += key + '=' + opts.data[key] + '&';//遍历data用&分隔
            }
            dataStr = dataStr.substr(0, dataStr.length - 1);//去掉最后一位的&

            if (opts.type.toLowerCase() == 'post') {
                xmlhttp.open(opts.type, opts.url, true);
                xmlhttp.setRequestHeader('Content-type' , 'application/x-www-form-urlencoded');//post增加头部识别格式
                xmlhttp.send(dataStr);
            }

            if (opts.type.toLowerCase() == 'get') {
                xmlhttp.open(opts.type, opts.url + '?' +dataStr, true);
                xmlhttp.send();
            }
            
        }
        document.querySelector('#btn').addEventListener('click', function(){
            ajax({
                url: 'getData.php',   //接口地址
                type: 'get',               // 类型, post 或者 get,
                data: {
                    username: 'xiaoming',
                    password: 'abcd1234'
                },
                success: function(ret){
                    console.log(ret);       // {status: 0}  dealwith(ret)
                },
                error: function(){
                   console.log('出错了')
                }
            })//ajax函数,括号内的为参数
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答 1. ajax 是什么?有什么作用? Ajax是Asynchronous JavaScript and XM...
    Maggie_77阅读 2,999评论 0 0
  • 1.ajax 是什么?有什么作用? ajax主要是实现页面和web服务器之间数据的异步传输。不采用ajax的页面,...
    candy252324阅读 1,823评论 0 0
  • 1: ajax 是什么?有什么作用? ajax全称是Asynchrous JavaScript XML的缩写。 作...
    LINPENGISTHEONE阅读 1,495评论 0 0
  • 1. ajax 是什么?有什么作用? AJAX是对Asynchronous JavaScript and XML的...
    Rising_suns阅读 1,760评论 0 0
  • 问题 1. ajax 是什么?有什么作用? Ajax是Asynchronous JavaScript and XM...
    爱上帘外修竹阅读 3,068评论 0 0

友情链接更多精彩内容