Ajax异步请求的五个步骤及实战案例
目录
前言
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属性
只有在XMLHttpRequest对象完成了以上5个步骤之后,才可以获取从服务器端返回的数据。
ajax中的状态码(200-300则表示响应成功)
案例实现
案例:获取天气信息
格式要求:使用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("
- ")
- " + list[i].area + " ")
- " + list[i].day_air_temperature + " ")
- " + list[i].day_weather + " ")
- " + list[i].day_wind_direction + " ")
- " + list[i].day_wind_power + " ")
div.append("
div.append("
div.append("
div.append("
div.append("
div.append("
}
}, "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("
- ")
- " + list[i].area + " ")
- " + list[i].day_air_temperature + " ")
- " + list[i].day_weather + " ")
- " + list[i].day_wind_direction + " ")
- " + list[i].day_wind_power + " ")
div.append("
div.append("
div.append("
div.append("
div.append("
div.append("
}
}, "JSON")
})
结果截图:
总结
到此这篇关于Ajax异步请求的五个步骤及实战案例的文章就介绍到这了,更多相关Ajax异步请求步骤内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播