如何使用ajax


1、ajax是什么

我理解的ajax就是一种异步请求数据的方式,他的基本职责就是发送数据和接收数据。ajax执行过程主要依赖浏览器提供的XMLHttpRequest对象,而这个对象具有使得浏览器可以发出HTTP请求与接收HTTP响应的功能,从而实现了在页面不刷新的情况下和服务器进行数据交互。

2、原生js如何实现ajax请求

主要有以下五个步骤:(非常重要)
(1)创建XMLHttpRequest对象

var xhr = new XMLHttpRequest()

(2)初始化一个请求,xhr.open()可以接收5个参数,我们经常使用的是前三个

xhr.open('GET/POST','url',async)// true(异步),false(同步)

(3)发送该请求,可以获取到数据

xhr.send()//当为post请求时,send(参数),get请求时,send(null)


(4)获取数据,分为同步和异步

当同步获取数据时

var data = xhr.responseText
console.log(data) 

缺点:如果网络请求特别慢,页面就卡住一直等待数据的请求,用户就无法操作。所以我们只能用异步的方式(不推荐同步)。

当异步获取数据时

//监听数据,内部数据到了会触发load
 xhr.addEventListener('load', function () {
    // 如果响应状态是200到300以内,或者等于304
    // 200到300都是请求数据成功的
    // 304 重定向(缓存)
    if((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304){
      //responseText:响应文本(内容)
     console.log(xhr.responseText)
    }else{
      console.log('出错了')
    }
 }

因为代码是从上往下执行的,数据请求的速度没比不上代码的执行速度,所以需要监听数据的到来

换一种写法就是:

var xhr = new XMLHttpRequest()
xhr.open('GET', 'http://hello.php', true)
xhr.onreadystatechange = function(){
    if(xhr.readyState === 4) {
        if((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
            //成功了
            console.log(xhr.responseText)
        } else {
            console.log('出错了')
        }
    }
}
xhr.onerror = function(){
    console.log('服务器异常')
}
xhr.send()

3、在jquery中如何使用ajax

jquery中已经封装好了一个ajax,直接使用即可。

$.ajax({
            url:"/user/login",//url地址
            dataType:"json",//返回的数据类型
            type:"post",//发起请求的方式,get/post
            data:{//此处为请求的参数
                'name':name,
                'password':password
            },
            success:function(data) {
            //请求成功时,执行
            console.log(data)//后端接口返回的参数
            },
            error:function(){
            //请求失败时,执行
            }
        });


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM