vlambda博客
学习文章列表

ajax的原型以及库的封装

原文--

var ajax = new XMLHttpRequest();

        ajax.open('get','./01.txt',true);

        ajax.send();

        ajax.onreadystatechange = function(){

            if(ajax.readyState === 4 && ajax.status === 200){

                console.log(ajax.responseText);

            }

        }

库的封装--

 function ajax(methods, url, data, callback) {

            var xhr = new XMLHttpRequest();

//在封装时考虑不同的传入数据方式即get/post

            if (methods.toLowerCase() === 'get') {

                url += '?' + data;

                xhr.open(methodsurltrue);

                xhr.send();

            } else if (methods.toLowerCase === 'post') {

                xhr.open('post'urltrue);

                xhr.setRequestHeader('contend-type''application/x-www-form-urllencode')

                xhr.send(data)

            }

            xhr.onreadystatechange = function () {

                if (xhr.readyState === 4) {

//readyState为监听ajax的状态固定用法:值为4时为解析完成,可以调用

                    if (xhr.status === 200)

//status则是检测服务器状态的。

 { callback && callback(xhr.responseText) }

                    else {

                        throw new Error('请求失败,错误码' + xhr.status)


                    }

                }

            }

        }

生亦何欢,死亦何苦。。。。。。。。。。。。。。。。。。。。。