Javascript学习------ajax

原生js 封装ajax-纯粹网上直接照搬,没看懂希望下次回头看时能明白一点:

<!DOCTYPE html>
<html>
<body>
    <script type="text/javascript">
        // 使用原生js 封装ajax
        // 兼容xhr对象
        var $ = {
            createXHR: function () {
                if (typeof XMLHttpRequest != "undefined") { // 非IE6浏览器
                    return new XMLHttpRequest();
                } else if (typeof ActiveXObject != "undefined") {// IE6浏览器
                    var version = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0","MSXML2.XMLHttp",];
                    for (var i = 0; i < version.length; i++) {
                        try {
                            return new ActiveXObject(version[i]);
                        } catch (e) {
                        }
                    }
                } else {
                    throw new Error("您的系统或浏览器不支持XHR对象!");
                }
            },
            params: function (data) {
                var arr = [];
                for (var i in data) {
                    arr.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));
                }
                return arr.join("&");
            },
            ajax: function (obj) {
                var xhr = this.createXHR();
                obj.url = obj.url + "?rand=" + Math.random(); // 清除缓存
                obj.data = this.params(obj.data);      // 转义字符串
                if (obj.method === "get") {      // 判断使用的是否是get方式发送
                    obj.url += obj.url.indexOf("?") == "-1" ? "?" + obj.data : "&" + obj.data;
                }
                // 异步
                if (obj.async === true) {
                    // 异步的时候需要触发onreadystatechange事件
                    xhr.onreadystatechange = function () {
                        // 执行完成
                        if (xhr.readyState == 4) {
                            callBack();
                        }
                    }
                }
                xhr.open(obj.method, obj.url, obj.async);  // false是同步 true是异步 // "demo.php?rand="+Math.random()+"&name=ga&ga",
                if (obj.method === "post") {
                    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                    xhr.send(obj.data);
                } else {
                    xhr.send(null);
                }
                // xhr.abort(); // 取消异步请求
                // 同步
                if (obj.async === false) {
                    callBack();
                }
                // 返回数据
                function callBack() {
                    // 判断是否返回正确
                    if (xhr.status == 200) {
                        obj.success(xhr.responseText);
                    } else {
                        obj.Error("获取数据失败,错误代号为:" + xhr.status + "错误信息为:" + xhr.statusText);
                    }
                }
            }
        }
        var html = document.getElementsByTagName("html")[0];
        html.onclick = function () {
            $.ajax({
                "method": "post",
                "async": false,
                "url": "Main/settext",
                "data": {
                    "name": "gaga",
                    "age": 10000000,
                    "num": "12346&598"
                },
                "success": function (data) {
                    alert(data);
                },
                "Error": function (text) {
                    alert(text);
                },
                "async": false
            });
        }
    </script>
</body>
</html>
时间: 2024-08-03 09:47:29

Javascript学习------ajax的相关文章

JavaScript学习总结【12】、JS AJAX应用

1.AJAX 简介 AJAX(音译为:阿贾克斯) = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术,也就是在无需重新加载整个网页的情况下,能够更新部分网页的技术.AJAX 不是新的编程语言,而是一种使用现有标准的新方法,是一种用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新,传统的

JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例

JavaScript学习总结(一)--延迟对象.跨域.模板引擎.弹出层.AJAX示例 目录 一.AJAX示例 1.1.优点 1.2.缺点 1.3.jQuery AJAX示例 二.延迟对象(Deferred) 2.1.回调函数 2.2.deferred.done 三.跨域 3.1.什么是跨域 3.2.JSONP跨域 3.3.jQuery使用JSONP跨域 3.4.跨域资源共享(CORS) 3.5.小结 四.弹出层 五.模板引擎 5.1.Hello World 5.2.方法 5.3.与AJAX结合应

最新JavaScript、Ajax典藏级学习资料下载分类汇总 (2011年12月21日更新)

其他网站开发相关资料            超强HTML和xhtml,CSS精品学习资料下载汇总                                               最新html5以及css3资源下载汇总                                               Dreamweaver 教程汇总 索引: JavaScript初学者及参考必备 Javascript高级进阶 AJAX (Asynchronous JavaScript and

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo

javascript 学习小结 (三) jQuery封装ajax尝试 by FungLeo 前言 在JS学习中,对于原生的很多东西我理解得并不透彻.但是使用jQuery来操作DOM,基本上还是非常熟练的.但是对于AJAX数据交互的处理,我不是很理解. 近期团队交给我一个后端全接口提供给我的项目.我要利用这些接口来自己组织前端代码.为了学习,我决定不使用VUE或者其他的前端框架来做.而是只使用jQuery框架,数据的部分全部使用拼接字符串的形式实现. 获取数据,显示数据,提交数据. 在这个项目中(

我的javascript学习之路(一)对象之基础

做了2个多月的ajax项目,对js的学习觉得了深入了不少,把自己的一些学习的经验贴出来,希望对初学者有所帮助,也希望大家能指出我的错误之处或者不当之处. javascript 是基于对象的语言,为什么这么说呢,需要仔细思考. js的单根继承体系需要仔细了解,我觉得在js的世界里本身没有类的概念,他只有对象Object,不像java语言本身就有了Object然后又有Class,js中我们可以自己根据他的语言来构件类这一对象,因为没有语言本身的支持,所以方法就各种各样了,但是只要我们掌握了js的本质

56本前端工程师必备的javaScript学习书籍

分享56本前端工程师必备的javaScript学习书籍(包括了pdf,chm,doc) 1.JavaScript权威指南(第6版)(中文版)2.深入浅出Javascript.O‘reilly.Head.First.Javascript.Jan.20083.JavaScript王者归来月影扫描版4.JavaScript.DOM高级程序设计贝斯扫描版5.精通javascript(图灵计算机科学丛书)6.JavaScript面向对象15分钟教程7.原型.作用域.闭包的完整解释8.Javascript面

使用CSS、JavaScript及Ajax实现图片预加载的方法详解 

预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享使用CSS.JavaScript及Ajax实现图片预加载的三个不同技术,来增强网站的性能与可用性.一起来看看吧,希望对大家学习web前端有所帮助. 方法一:用CSS和JavaScript实现预加载 实现预加载图片有很多方法,包括使用CSS

javascript 学习小结 JS装逼技巧(一) by FungLeo

javascript 学习小结 JS装逼技巧(一) by FungLeo 前言 最近一直在做javascript方面的工作.但是本身我的javascript水平比较低,因此在学习过程中比较困难.而最近又接触到了很多的知识点.好记性不如烂笔头,因此写这篇零碎的博文,记一记我学到的一些好玩的东西. 简单的新建各种元素 创建各种元素都有相对应的方法,例如,创建一个数组可以这样写var arr = new Array 当然,这样做是对的,但是我英文很烂,并且不喜欢这样的代码.我喜欢的是下面这样的. //

【吐血推荐】牛人收集的163个Javascript学习教程pdf电子书资源合集

不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf 26.02 MB   5天驾驭JQuery教程.pdf 1.08 MB   ACCP软件开发初级程序员-使用Javascript增强交互效果-北大青鸟.pdf 51.70 MB   Ajax+PHP程序设计实战详解.pdf 84.29 MB   Ajax实战中文版.pdf 2.48 MB   Aj