`
yhan219
  • 浏览: 11561 次
  • 来自: 成都
社区版块
存档分类
最新评论

原生js实现ajax

 
阅读更多

原生javascript实现ajax

实现如下,类似jquery的ajax,可以对返回值操作:

/**
 * 实现ajax
 */
var createAjax = function() {
    var xhr = null;
    try {
        //IE系列浏览器
        xhr = new ActiveXObject("microsoft.xmlhttp");
    } catch (e1) {
        try {
            //非IE浏览器
            xhr = new XMLHttpRequest();
        } catch (e2) {
            window.alert("您的浏览器不支持ajax,请更换!");
        }
    }
    return xhr;
};
var ajax = function(conf) {
    // 初始化
    //type参数,可选
    var type = conf.type;
    //url参数,必填 
    var url = conf.url;
    //data参数可选,只有在post请求时需要
    var data = conf.data;
    //datatype参数可选    
    var dataType = conf.dataType;
    //回调函数可选
    var success = conf.success;

    if (type == null){
        //type参数可选,默认为get
        type = "get";
    }
    if (dataType == null){
        //dataType参数可选,默认为text
        dataType = "text";
    }
    // 创建ajax引擎对象
    var xhr = createAjax();
    // 打开
    xhr.open(type, url, true);
    // 发送
    if (type == "GET" || type == "get") {
        xhr.send(null);
    } else if (type == "POST" || type == "post") {
        xhr.setRequestHeader("content-type",
                    "application/x-www-form-urlencoded;charset=utf-8");
        xhr.send(data);
    }
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            if(dataType == "text"||dataType=="TEXT") {
                if (success != null){
                    //普通文本
                    success(xhr.responseText);
                }
            }else if(dataType=="xml"||dataType=="XML") {
                if (success != null){
                    //接收xml文档    
                    success(xhr.responseXML);
                }  
            }else if(dataType=="json"||dataType=="JSON") {
                if (success != null){
                    //将json字符串转换为js对象  
                    success(eval("("+xhr.responseText+")"));
                }
            }
        }
    };
};

使用方法:

ajax({
            type : "get",
            url : "test.json",
            dataType : "json",
            success : function(data) {

            }
        });
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    原生javascript实现ajax 发送post请求

    原生javascript实现ajax发送pos请求,这样可以脱离jquery框架,

    41.jQuery中Ajax和原生js实现Ajax的关系.avi

    jQuery中Ajax和原生js实现Ajax的关系

    原生JavaScript实现Ajax的方法_.docx

    ### 原生JavaScript实现Ajax的方法 #### 一、引言 Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据...

    Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4

    Java面试题41.jQuery中Ajax和原生js实现Ajax的关系.mp4

    原生JavaScript实现Ajax的方法

    原生JavaScript实现Ajax的方法 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过Ajax可以使得网页异步数据交互更为高效,提高用户体验。原生...

    原生js实现ajax方法(超简单)

    原生JavaScript实现AJAX方法的知识点: 1. AJAX基本概念:AJAX代表“异步JavaScript和XML”,它允许Web页面在不重新加载的情况下进行数据交换和更新。使用AJAX技术,网页可以即时地从服务器获取更新,从而提高用户...

    原生JS实现ajax与ajax的跨域请求实例

    **原生JS实现AJAX** AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。以下是如何使用原生JavaScript实现一个简单的AJAX请求的步骤: 1. **创建...

    原生JavaScript实现Ajax异步请求

    原生JavaScript实现Ajax异步请求是前端开发中的一项基本技能,尤其在理解网络通信和优化性能时至关重要。Ajax,即Asynchronous JavaScript and XML(异步JavaScript和XML),它允许网页在不重新加载整个页面的情况下...

    基于原生javascript封装的Ajax插件含Node测试接口

    **原生JavaScript实现Ajax** 原生JavaScript实现Ajax涉及到以下几个关键步骤: 1. **创建XMLHttpRequest对象**:在所有现代浏览器中,都可以通过`new XMLHttpRequest()`创建一个XMLHttpRequest实例。 2. **初始化...

    原生js实现ajax请求和JSONP跨域请求操作示例

    原生js实现ajax请求和JSONP跨域请求操作示例的知识点涉及了Web前端技术中的核心知识点,主要介绍的是如何使用JavaScript原生代码来发起网络请求以及如何处理跨域问题。以下是对给定文件内容中知识点的详细解读: 1....

    原生JavaScript实现AJAX、JSONP

    在某些场景下,原生JavaScript实现AJAX和JSONP比使用库如jQuery更轻量级,也更有助于理解其工作原理。 首先,让我们详细解析原生JavaScript实现AJAX的过程: 1. **实例化XMLHttpRequest对象**: 在所有现代浏览器...

    原生js的AJAX封装以及实例展示.zip

    总的来说,原生JS的AJAX封装和实例展示了如何通过XMLHttpRequest对象与服务器进行交互,实现数据的动态加载和页面的无刷新更新,这对于构建交互性更强的Web应用至关重要。通过学习和实践这个例子,你可以更好地理解...

    原生js+ajax通用函数+php

    本函数封装了js的ajax,php为处理后台数据,仅支持post,代码很简洁

    js代码-原生js实现ajax

    在`main.js`文件中,可能包含了上述实现Ajax的具体代码,这可能是一个简单的示例,用于演示如何使用原生JavaScript发送Ajax请求。`README.txt`可能是对这个代码的简单说明或者使用指南,包括如何运行、如何配置以及...

    原生JS实现Ajax通过POST方式与PHP进行交互的方法示例

    本文实例讲述了原生JS实现Ajax通过POST方式与PHP进行交互的方法。分享给大家供大家参考,具体如下: 一、代码 conn.php &lt;?php $conn=mysql_connect(localhost,root,root) or die(数据库连接失败.mysql_error())...

    【AJAX】传统JavaScript实现AJAX的小栗子

    "【AJAX】传统JavaScript实现AJAX的小栗子" 这个标题表明我们将探讨的是使用原生JavaScript实现AJAX(Asynchronous JavaScript and XML)的技术。AJAX是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术...

Global site tag (gtag.js) - Google Analytics