JS-AJAX

作者: 饥人谷_踌躇 | 来源:发表于2018-11-29 15:13 被阅读0次

    AJAX介绍

    • 全称 Asynchronous Javascript And XML (异步的JavaScript和XML)
    • 简介:AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
    • 应用场景
      1.场景 1. 数据验证
      2.场景 2. 按需取数据
      3.场景 3. 自动更新页面

    创建ajax的步骤

    1.创建XMLHttpRequest对象

    Ajax的核心是XMLHttpRequest对象,它是Ajax实现的关键,发送异步请求、接受响应以及执行回调都是通过它来完成

    var xhr = new XMLHttpRequest();
    

    2、准备请求

    • 初始化该XMLHttpRequest对象使用open方法,接受三个参数:
    xhr.open(method,url,async);
    
    • 第一个参数表示请求类型的字符串,其值可以是GET或者POST。
      GET请求:
    xhr.open("GET",demo.json?name=jirengu&age=24,true);
    

    POST请求:

    xhr.open("POST",demo.json,true);
    
    • 第二个参数是要作为请求发送目标的URL。

    • 第三个参数是true或false,表示请求是以异步还是同步的模式发出。(默认为true,一般不建议为false)

    • true:异步模式发出的请求,请求对象收发数据的同时,浏览器可以继续加载页面,执行其他javascript代码.

    • false:同步模式发出的请求会暂停所有javascript代码的执行,直到服务器获得响应为止,如果浏览器在连接网络时或者在下载文件时出了故障,页面就会一直挂起。

    3. 发送请求

    • 发送请求使用send方法;
    xhr.send()
    

    一般情况下,使用Ajax提交的参数多是些简单的字符串,可以直接使用GET方法将要提交的参数写到open方法的url参数中,此时send方法的参数为为空。

    • GET请求:
    xhr.open("GET",demo.php?name=tsrot&age=24,true);
    xhr.send();
    
    • POST请求:
      使用send()方法中规定您希望发送的数据:
    xhr.open("POST",demo.json,true);
    
    xhr.send()
    

    4.处理响应

    xhr.addEventListener('load',function(){
    if ((xhr.status>=200 && xhr.status<300) || xhr.staus ===304)
    var data = xhr.responseText;
    console.log(data)
    })
    
    • status 服务器的状态码
      • status属性:
        200-300:寻找成功
        304:在缓存之中寻找
        404: 未找到页面
    • readyState :本地ajax处理过程

    0:请求未初始化(还没有调用 open())。
    1:请求已经建立,但是还没有发送(还没有调用 send())。
    2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
    3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
    4:响应已完成;您可以获取并使用服务器的响应了。

    • responseText:获得字符串形式的响应数据
    xhr.responseText
    
    • 对象转换为JSON格式使用JSON.stringify

    • json转换为对象格式用JSON.parse()

    • 返回值一般为json字符串,可以用JSON.parse(xhr.responseText)转化为JSON对象.

    5.相关事件

    • 使用load事件在XMLHttpRequest对象加载完毕后取得数据
    xhr.addEventListener('load',function(){
    var data = xhr.responseText;
    console.log(data)
    })
    

    相关文章

      网友评论

        本文标题:JS-AJAX

        本文链接:https://www.haomeiwen.com/subject/scqfcqtx.html