ajax请求步骤和封装

简介

首先带大家了解一下什么是ajax
ajax(异步javascript xml) 能够刷新局部网页数据而不是重新加载整个网页。

那么如何使用ajax呢?

第一步创XMLHTTPRequest对象

 var xhr = new XMLHttpRequest();

第二步使用open方法设置和服务器的交互信息

//get请求方式

xhr.open('get','getStar.php);

//post请求方式

xhr.open('post','getStar.php);

第三步发送请求

xhr.send();

第四步注册事件

xhr.onreadystatechange = function () {
if (xhr.readyState4 &&xhr.status200) {
}

第五步跟新事件

xhr.onreadystatechange = function () {
if (xhr.readyState4 &&xhr.status200) {
//步骤五 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的
    console.log(xhr.responseText);//输入相应的内容
}

完整版的get请求步骤

//步骤一:创建异步对象
varxhr = new XMLHttpRequest();
//步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数,动态的传递参数starName到服务端
xhr.open('get','getStar.php?starName='+name);
//步骤三:发送请求
xhr.send();
//步骤四:注册事件 onreadystatechange 状态改变就会调用
xhr.onreadystatechange = function () {   if (xhr.readyState==4 &&xhr.status==200) {
    //步骤五 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的    console.log(xhr.responseText);//输入相应的内容    }
}

完整版的post请求步骤

//步骤一:创建异步对象
varxhr = new XMLHttpRequest();
//步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数,动态的传递参数starName到服务端
xhr.open('post','getStar.php?starName='+name);
//步骤三:发送请求
xhr.send();
//步骤四:注册事件 onreadystatechange 状态改变就会调用
xhr.onreadystatechange = function () {   if (xhr.readyState==4 &&xhr.status==200) {
    //步骤五 如果能够进到这个判断 说明 数据 完美的回来了,并且请求的页面是存在的    console.log(xhr.responseText);//输入相应的内容    }
}

为了方便使用,我们可以把他封装进方法里面,要用的时候,直接调用就好了

 function ajax_method(url,data,method,success) {
    // 异步对象
    var xhr = new XMLHttpRequest();

    // get 跟post  需要分别写不同的代码
    if (method=='get') {
        // get请求
        if (data) {
            // 如果有值
            url+='?';
            url+=data;
        }else{

        }
        // 设置 方法 以及 url
        xhr.open(method,url);

        // send即可
        xhr.send();
    }else{
        // post请求
        // post请求 url 是不需要改变
        xhr.open(method,url);

        // 需要设置请求报文
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

        // 判断data send发送数据
        if (data) {
            // 如果有值 从send发送
            xhr.send(data);
        }else{
            // 木有值 直接发送即可
            xhr.send();
        }
    }

    // 注册事件
    xhr.onreadystatechange = function () {
        // 在事件中 获取数据 并修改界面显示
        if (xhr.readyState==4&&xhr.status==200) {
            // console.log(xhr.responseText);

            // 将 数据 让 外面可以使用
            // return xhr.responseText;

            // 当 onreadystatechange 调用时 说明 数据回来了
            // xhr.responseText;

            // 如果说 外面可以传入一个 function 作为参数 success
            success(xhr.responseText);
        }
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值