对jquery中的$.ajax二次封装 从而多次调用 今天一整天都在想这个事情

当然了  我封装的是$.ajax  可以传参数  多次调用请求接口  为啥我们这地方不注重前端呢  我都不知道为啥去坚持 不说了  上代码

js文件

$ajax.js

$(function(){
        /**
         * ajax封装
         * url 发送请求的地址
         * data 发送到服务器的数据,数组存储,如:{"username": "张三", "password": 123456}
         * succCallback 成功回调函数
         * errorCallback 失败回调函数
         * type 请求方式("POST" 或 "GET"), 默认已经设置为 "POST"
         * dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text
         * reference jquery-1.7.1.js
         */

        //插入loading
        var html = "";
            html += ‘<div class="js_loading">‘;
            html +=     ‘<div class="mask"></div>‘;
            html +=     ‘<div class="loading">‘;
            html +=         ‘<span><img src="loading.gif"></span>‘;
            html +=     ‘</div>‘;
            html += ‘</div>‘;
        $("body").append(html);

        function $ajax(url, postData, succCallback, errorCallback, type, dataType){
            var type = type || "post";
            var dataType = dataType || "json";

            $.ajax({
                type: type,
                url: url,
                data: postData,
                dataType: dataType,

                beforeSend: function(){  //开始loading
                    $(".js_loading").show();
                },

                success: function(res){
                    if(res.success){
                        if(succCallback){
                            succCallback(res);
                        }
                    }else{
                        if(errorCallback){
                            errorCallback(res);
                        }
                    }
                },

                complete: function(){   //结束loading
                    //$(".js_loading").remove();
                    $(".js_loading").hide();
                }
            });
        }
    });

是不是一看就明白了  so easy  不要觉得那些面试官出的题目有多难  只是么有反应过来

好了 接下来就是调用了

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>ajax再封装</title>
<style>
.js_loading{display:none;}
.mask{background:rgba(255, 255, 255, 0);position:fixed;left:0;top:0;width:100%;height:100%;z-index:1;}
.loading{position:fixed;left:0;top:0;width:100%;height:100%;z-index:2;display:box;box-pack:center;box-align:center;display:-webkit-box;-webkit-box-pack:center;-webkit-box-align:center;}
.loading span{display:block;background:#333;width:40px;height:40px;border-radius:3px;text-align:center;}
.loading img{width:26px;margin-top:7px;}
</style>
<script src="jquery-1.7.1.js"></script>
</head>
<body>
<button type="button" class="btn">获取</button>
<div class="box"></div>
<script>
    $(function(){
        $(".btn").click(function(){
            var postData = {
                username: ‘张三‘,
                password: 123456
            };
            $ajax(
                ‘test.asp‘,
                postData,
                function(res){  //成功
                    $(".box").html(res.firstName);
                },
                function(res){  //失败
                    $(".box").html(res.fail);
                }
            );
        });
    });
</script>
</body>
</html>

还有就是请求的页面 test.asp

{
    "success":true,
    "firstName":"获取成功!!!",
    "lastName":"哈哈...",
    "fail":"获取失败!!!"
}

自己试试吧  思路一疏通  写这类的方法不是问题

关机睡觉

---恢复内容结束---

当然

时间: 2024-10-05 19:12:39

对jquery中的$.ajax二次封装 从而多次调用 今天一整天都在想这个事情的相关文章

jQuery中对AJAX操作的封装函数

jQuery提供了6个简化AJAX操作的函数,每个都可以代替元素AJAX中的四步代码! (1)$('xxx').load()         jQuery对象函数 (2)$.get()                   jQuery全局函数 (3)$.post()                 jQuery全局函数 (4)$.getScript()          jQuery全局函数 (5)$.getJSON()           jQuery全局函数 (6)$.ajax()     

深入理解ajax系列第九篇——jQuery中的ajax

前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而不需要理会那么繁琐的XMLHTTPRequest对象.jQuery对ajax操作进行了封装,在jQuery中$.ajax()属性最底层的方法,第2层是load().$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法.下面将详细介绍jQuery中的aj

jquery中的ajax参数

jquery中将ajax封装成了函数,我们使用起来非常方便,jquery会自动根据内容选择post还是get方式提交数据,并且会自动编码,但是要想完全掌握jquery中的ajax,我们必须将它的各个参数记住: 1.url    strng   发送请求的地址 2.type  string   请求方式(post或get,默认get),其他http请求方法,比如:put和delete也可以使用,但只有部分浏览器支持. 3.timeout   number    设置请求超时时间(毫秒).此设置将覆

在jquery中使用AJAX

在jquery中使用封装好的AJAX会对开发效率起到极大的便利,因此掌握jquery中的一系列AJAX封装函数是做好页面数据交互的必备技能: 1.在之前,我们首先需要详细了解AJAX异步请求接受的五中响应消息,根据不同的响应类型进行不同的操作 (1)text/plain    // 明文 服务器端: header('Content-Type: text/plain'); echo 'succ'; 客户端: if(xhr.responseText==='succ'){ ... } (2)text/

两强相争,鹿死谁手 — JQuery中的Ajax与AngularJS中的$http

一.JQuery与AngularJS 首先,先简单的比较一下JQuery与AngularJS. 二.Ajax请求与数据遍历打印 这里是Ajax和$http请求的JSON文件概览,默认的路径我们就放在与两者同级的文件夹里. [ { "name": "一号", "age": 17, "hobby": [ "吃", "喝" ], "score":{ "math&q

从零开始学习jQuery (六) jquery中的AJAX使用

本篇文章讲解如何使用jQuery方便快捷的实现Ajax功能.统一所有开发人员使用Ajax的方式. 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现Ajax功能.统一所有开发人员使用Ajax的方式. 二.前言 Ajax让用户页面丰富起来, 增强了用户体验. 使用Ajax是所有Web开发的必修课. 虽然Ajax技术并不复杂, 但是实现方式还是会因为每个

jQuery入门(4)jQuery中的Ajax应用

jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 jQuery入门(3)事件与事件对象 jQuery入门(4)jQuery中的Ajax应用 一.原始Ajax与jQuery中的Ajax 首先通过实例, 来看一下jQuery实现Ajax有多简单. 下面是一个使用原始Ajax的示例: 01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

深入理解jQuery中的ajax

前面的话 jQuery提供了一些日常开发中需要的快捷操作,例如load.ajax.get和post等,使用jQuery开发ajax将变得极其简单.这样开发人员就可以将程序开发集中在业务和用户体验上,而不需要理会那么繁琐的XMLHTTPRequest对象.jQuery对ajax操作进行了封装,在jQuery中$.ajax()属性最底层的方法,第2层是load().$.get()和$.post()方法,第3层是$.getScript()和$.getJSON()方法.下面将详细介绍jQuery中的aj

Ajax JS 中的Ajax jquery中的Ajax

Ajax (Asynchronous Javascript And XML)  通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 1.Ajax的优势: 不需要插件的支持,能被大多数主流浏览器支持 优秀的用户体验,不用刷新整个页面,就能更新数据 提高web程序的性能,通过XMLHttpRequest对象向服务端提交所需的数据 2.Ajax的核心: XMLHttpRequest 对象, 发送异步请求.接收相应 .