Ajax异步请求的五个步骤及实战案例_AJAX相关

来源:脚本之家  责任编辑:小易  
目录
前言1.建立xmlHttpRequest异步对象2.创建HTTP请求(设置请求方法和URL)3.发送数据4.设置回调函数5.在回调函数中对不同的响应状态进行处理案例实现总结

前言

AJAX(Asynchronous JavaScript and XML):是指一种创建交互式网页应用的网页开发技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这就意味着可以在不重新加载整个网页的情况下,对网页的局部进行更新。

1.建立xmlHttpRequest异步对象

 const xhr=new XMLHttpRequest();

2.创建HTTP请求(设置请求方法和URL)

//get方式
xhr.open('GET',URL);
 
//post方式发送数据,需要设置请求头
xhr.open('POST',URL);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

除了method和URL两个必选参数外还有三个可选参数:flag,name,password

flag:参数值为布尔类型,用于指定是否用异步方式。true表异步,false表同步,默认为true。

name:

3.发送数据

//get不需要传递参数
xhr.send(null);
 
//post必须有参数
xhr.send('a=100&b=200&c=300');

4.设置回调函数

xhr.onreadystatechange = callback;

5.在回调函数中对不同的响应状态进行处理

function callback() {
     //判断响应状态码
     if(xhr.readyState===4){
        // 判断交互是否成功
        if(xhr.status>=200&&xhr.status<300){
             // console.log(xhr.status);//状态码
             // console.log(xhr.statusText);//状态字符串
             // console.log(xhr.getAllResponseHeaders());//所有响应头
             // console.log(xhr.response);//响应体
 
             // 获取服务器响应的数据
             result.innerHTML=xhr.response;
        }else{
 
        }
    }
}

ajax中的readyState属性

0:未初始化。尚未调用 open()方法。1:启动。已经调用 open()方法,但尚未调用 send()方法。2:发送。已经调用 send()方法,但尚未接收到响应。3:接收。已经接收到部分响应数据。4:完成。已经接收到全部响应数据,而且已经可以在客户端使用了。

只有在XMLHttpRequest对象完成了以上5个步骤之后,才可以获取从服务器端返回的数据。

ajax中的状态码(200-300则表示响应成功)

400:请求参数错误401:无权限访问404:访问的资源不存在

案例实现

案例:获取天气信息

格式要求:使用HTML创建一个输入框,一个按钮,在输入框中输入文字后点击按钮,即可在下面打印未来15天的天气

输出要求:每个天气要求:城市名,温度,天气,风向,风力

API网站:(https://www.apishop.net/#/)

APIKEY:***************

使用 $.get( ) 获取:

var text = $('#text')
var btn = $('#button')
var div = $('#div1')
btn.click(function(){
    var city = text.val()
    var url = "https://api.apishop.net/common/weather/get15DaysWeatherByArea?apiKey=******="+ city

    $.get(url, function(response){
        console.log(response)
        var list = response.result.dayList;
        console.log(list)
        for(var i = 0; i < list.length; i++){
            div.append("<ul>")
            div.append("<li>" + list[i].area + "</li>")
            div.append("<li>" + list[i].day_air_temperature + "</li>")
            div.append("<li>" + list[i].day_weather + "</li>")
            div.append("<li>" + list[i].day_wind_direction + "</li>")
            div.append("<li>" + list[i].day_wind_power + "</li>")
            div.append("</ul>")
        }

    }, "JSON")
})

使用 $.post( ) 获取:

var text = $('#text')
var btn = $('#button')
var div = $('#div1')
btn.click(function(){
                var url = "https://api.apishop.net/common/weather/get15DaysWeatherByArea?apiKey=******&area="

                $.post(url,{
                    // 传入必须的参数
                    area:text.val()
                }, function(response){
                    console.log(response)
                    var list = response.result.dayList;
                    console.log(list)
                    for(var i = 0; i < list.length; i++){
                        div.append("<ul>")
                        div.append("<li>" + list[i].area + "</li>")
                        div.append("<li>" + list[i].day_air_temperature + "</li>")
                        div.append("<li>" + list[i].day_weather + "</li>")
                        div.append("<li>" + list[i].day_wind_direction + "</li>")
                        div.append("<li>" + list[i].day_wind_power + "</li>")
                        div.append("</ul>")
                    }

                }, "JSON")
            })

结果截图:

总结

到此这篇关于Ajax异步请求的五个步骤及实战案例的文章就介绍到这了,更多相关Ajax异步请求步骤内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:ajax异步请求详解浅谈js的ajax的异步和同步请求的问题原生JavaScript实现Ajax异步请求解决ajax异步请求返回的是字符串问题

  • 本文相关:
  • ajax提交手机号去数据库验证并返回状态值
  • ajax解析xml实例之下拉框省、市二级联动
  • ajax验证用户名是否存在的实例代码
  • asp.net中mvc使用ajax提交参数的匹配问题解决探讨
  • 非常实用的ajax用户注册模块
  • 使用ajax实现无刷新改变页面内容和地址栏url
  • ajax写分页查询(实现不刷新页面)
  • ajax按需读取数据生成下级菜单
  • ajax风格的一款网页loading效果
  • 基于iframe实现ajax跨域请求 获取网页中ajax数据
  • 请帮我写出AJAX异步请求几个步骤的JS代码
  • java怎么处理ajax?
  • Ajax异步请求JSon数据(图文详解)
  • Ajax异步访问的四个步骤是什么?
  • Ajax异步访问的四个步骤是那四个步骤?
  • Ajax简单的异步交互及Ajax原生编写
  • 爬取今日头条Ajax请求
  • AJAX:论述同步通信方式和异步通信方式的优缺点及使用场景
  • C# 怎么读取到ajax异步过来的json的数据呢?
  • WordPress中利用AJAX异步获取评论用户头像的方法
  • Ajax的使用四大步骤
  • AJAX实现步骤是怎么样的?
  • laravel框架怎样用异步请求做商品收藏功能
  • ajax和java
  • java怎么处理ajax?
  • 通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据(经典...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页ajax相关ajax异步请求详解浅谈js的ajax的异步和同步请求的问题原生javascript实现ajax异步请求解决ajax异步请求返回的是字符串问题ajax提交手机号去数据库验证并返回状态值ajax解析xml实例之下拉框省、市二级联动ajax验证用户名是否存在的实例代码asp.net中mvc使用ajax提交参数的匹配问题解决探讨非常实用的ajax用户注册模块使用ajax实现无刷新改变页面内容和地址栏urlajax写分页查询(实现不刷新页面)ajax按需读取数据生成下级菜单ajax风格的一款网页loading效果基于iframe实现ajax跨域请求 获取网页中ajax数据jquery ajax 向后台传递数组参数示例ajax readystate的五种状态详解jquery实现ajax定时刷新局部页面实例ajax中的async属性值之同步和异步及同步和异步区别ajax传递多个参数具体实现ajax获取数据然后显示在页面的实现方法ajax获取数据中文乱码问题最简单的完美解决方案jquery ajax中使用serialize()方法提交表ajax请求二进制流进行处理(ajax异步下载文件)的简单方自己动手打造ajax图片上传(网上没有的)ajax实现简单登录页面揭开ajax神秘的面纱(ajax个人学习笔记)ajax三级联动下拉菜单效果ajax与mysql数据交互实现留言板功能ajax技术组成与核心原理分析ajax读取数据到表格的实现代码ajax获取数据然后显示在页面的实现方法ajax邮箱、用户名唯一性验证实例代码ajax原理以及axios、fetch区别实例详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved