热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

写jQuery-ajax插件,XMLHttpRequest,支持回调,兼容ie、ff、360等浏览器

jqueryklajaxjs。kl为命名空间。使用必须有jqueryjs**该插件用于异步调取数据*readyState*0:请求未初始化*1:请求已经建立,但是还没有发送*2:请求已发送,正在处理中*3:请求在处理中
jquery.kl.ajax.js
。kl  为命名空间
。使用必须有jquery.js
 
/* 
 *该插件用于异步调取数据 
 *readyState 
     *0:请求未初始化 
     *1:请求已经建立,但是还没有发送 
     *2:请求已发送,正在处理中 
     *3:请求在处理中 
     *4:响应已完成 
 *status 
     *401:未经授权 
     *403:禁止访问 
     *404:没找到访问页 
     *200:正常 
 *email pigkeli@qq.com 
 */  
jQuery.kl = {  
    ajax: function (options) {  
        var defaults = {  
            //发送方式 (可选 post、get)  
            method: "post",  
            //网址  
            url: "#",  
            //是否异步 (可选true、false)  
            async: true,  
            //用户名  
            user: null,  
            //密码  
            password: null,  
            //回调方法  
            callBack: function (data) {  
                //data 返回的数据  
            }  
        };  
        var o = jQuery.extend(defaults, options);  
        //method  
        if (o.method != "post" && o.method != "get") {  
            __log("'method' 参数无效. \r\n 应该为 'post' 或者 'get' .");  
            return;  
        }  
        //url  
        if (jQuery.trim(o.url) == "" || o.url == "#") {  
            __log("'url' 参数无效 .");  
            return;  
        }  
        //async  
        if (jQuery.trim(o.async) == "" || (o.async != true && o.async != false)) {  
            __log("'async' 参数无效. \r\n 应该为 true 或者 false .");  
            return;  
        }  
        //callBack  
        if (typeof (o.callBack) != "function") {  
            __log("'callBack' 参数无效. \r\n 应该为 'function' 支持传一个参数,该参数为返回的数据 .");  
            return;  
        }  
        var xhr = null;  
        //创建ajax  
        try {  
            xhr = new ActiveXObject("Msxml2.XMLHTTP");  
        } catch (e) {  
            try {  
                xhr = new ActiveXObject("Microsoft.XMLHTTP");  
            } catch (e) {  
                try {  
                    xhr = new XMLHttpRequest();  
                } catch (e) {  
                    __log("您的浏览器不支持ajax .");  
                    return;  
                }  
            }  
        }  
        //状态改变回调函数  
        xhr.Onreadystatechange= function () {  
            //响应已完成  
            if (xhr.readyState == 4) {  
                //成功  
                if (xhr.status == 200) {  
                    //回调  
                    o.callBack(xhr.responseText);  
                }  
                else {  
                    //判断错误  
                    switch (xhr.status) {  
                        case 401:  
                            __log("调用出错了. \r\n 错误原因:未经授权 .");  
                            break;  
                        case 403:  
                            __log("调用出错了. \r\n 错误原因:禁止访问 .");  
                            break;  
                        case 404:  
                            __log("调用出错了. \r\n 错误原因:没找到访问页 .");  
                            break;  
                        default:  
                            __log("调用出错了. \r\n 错误原因:未知错误 .");  
                            break;  
                    }  
                }  
            }  
        };  
        //open  
        xhr.open(o.method, o.url, o.async, o.user, o.password);  
        //send  
        xhr.send(null);  
    }  
};  
  
/* 
 *向控制台输出错误 
 */  
function __log(text) {  
    if (window.console && window.console.log) {  
        window.console.log(text);  
    }  
};  
 
 
 
页面调用
 
  
 
 
     
     
     
     
 
 
     
       
 
     
 
 
 
 

推荐阅读
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 需求:在指定的DIV区域内点击时,需展示该区域内的附加操作面板;而在区域外点击时,则应自动隐藏该附加操作面板。通过精准的事件监听与处理,确保用户交互体验的流畅性和直观性。 ... [详细]
  • 本文深入探讨了 Vue.js 中异步组件的应用与优化策略。首先,文章介绍了异步组件的基本概念及其在现代前端开发中的重要性。为了确保最佳实践,建议使用 Webpack 作为模块打包工具,因为 Browserify 默认不支持异步组件的加载。接着,详细解释了异步组件的使用方法,并提供了官方文档的相关链接以供参考。此外,文章还讨论了多种优化技巧,包括代码分割、懒加载和性能调优,以提升应用的整体性能和用户体验。 ... [详细]
  • 本课程详细介绍了如何使用Python Flask框架从零开始构建鱼书应用,涵盖高级编程技巧和实战项目。通过视频教学,学员将学习到Flask的高效用法,包括数据库事务处理和书籍交易模型的实现。特别感谢AI资源网提供的课程下载支持。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 如何在PHP中实现链接输出与字符串连接的操作技巧 ... [详细]
  • 初次接触AJAX是在去年,当时主要是通过手动编写客户端代码来实现,还需处理被请求的页面,过程相当繁琐。尽管之前就听说过AJAX.NET,但一直没有机会深入了解。本文将作为初学者的指南,详细介绍AJAX.NET的基本概念、核心功能及其在实际项目中的应用技巧,帮助读者快速上手并掌握这一强大的开发工具。 ... [详细]
  • 浏览器与服务器在网站访问过程中的数据交互分析
    本文分析了浏览器与服务器在网站访问过程中基于HTTP协议的数据交互机制。HTTP协议具有轻量级和高效通信的特点,主要通过GET、HEAD和POST方法进行数据传输。其“请求-响应”模式确保了数据交互的有序性和可靠性,同时支持多种数据格式和内容类型,为现代Web应用提供了坚实的基础。 ... [详细]
author-avatar
哗锅_348
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有