AJAX

    科技2025-04-08  23

    AJAX

    AJAX是与服务器交换数据并更新部分网页的技术,在不重新加载整个页面的情况下。

    (一)步骤

    1.创建一个异步对象

    var xmlhttp=new XMLHttpRequest()

    2.设置请求方式和请求地址

    xmlhttp.open("GET/POST","url",true)

    method:请求的类型;GET 或 POSTurl:文件在服务器上的位置async:true(异步)或 false(同步)(默认为true)
    3.发送请求

    xmlhttp.send()

    4.监听状态的变化(每当状态发生改变,就会调用该函数)
    xmlhttp.onreadystatechange=function (ev2) { if(xmlhttp.readyState === 4) { //判断是否请求成功(状态码 xmlhttp.status) if(xmlhttp.status >= 200 && xmlhttp.status < 300 || xmlhttp.status === 304) { //5.处理返回的结果 console.log("接收到服务器返回的数据") } else { console.log("接收数据失败") } } }

    readyState:

    0:请求未初始化1:服务器连接已建立2:请求已接收3:请求处理中4:请求已完成,且响应已就绪
    5.处理返回的结果

    console.log("接收到数据")

    (二)服务器响应

    responseText:获得字符串形式的响应数据(xmlhttp.responsText)

    responseXML:获得XML形式的响应数据(xmlhttp.responsXML)

    (三)解决IE浏览器数据不更新问题(GET请求)

    在IE浏览器中,如果通过AJAX发送GET请求,那么IE浏览器认为同一个URL只有一个结果

    也就是说,在第二步的xmlhttp.open("GET/POST","url",true),AJAX请求的URL中的数据执行一次之后,修改url中的数据,IE浏览器显示的数据不会发生改变

    解决办法:URL后加上随机数,让每次的URL都不一样

    随机数:

    Math.random()new Date().getTime()

    例如 xmlhttp.open("GET/POST",url+"?t="+(new Date().getTime()),true)

    (四)AJAX封装

    function ajax(url,obj,timeout,success,errror) { }

    obj:将对象转换为字符串

    timeout:服务器超时,显示发送失败

    URL中不可以出现中文,出现中文需要调用 encodeURIComponent 方法

    Processed: 0.010, SQL: 8