使用XMLHttpRequest对象与服务器通信。可以使用JSON、XML、HTML和Text文本等格式发送和接收数据。
axios({
url:"目标资源地址"
}).then((result)=>{
// 对服务器返回的数据做处理
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
axios库地址: https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js
身份数据地址:http://hmajax.itheima.net/api/province
目标:使用axios库,获取省份列表数据,展示到页面
-->
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js">
</script>
<script>
axios({
url:"http://hmajax.itheima.net/api/province"
}).then(result=>{
data=result.data.list;
for(let i = 0;i < data.length;i++){
document.write(data[i] + "
");
}
})
</script>
</body>
</html>
统一资源定位符,简称网址,用于访问网上资源。
规定浏览器与服务器之间传输数据的格式
标记服务器在互联网中的方位
标记资源在服务器下的具体位置
浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据
协议://域名/资源路径?参数名1=值1&参数名2=值2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
axios库地址: https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js
身份数据地址:http://hmajax.itheima.net/api/province
目标:使用axios库,获取省份列表数据,展示到页面
-->
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js">
</script>
<script>
axios({
url:"http://hmajax.itheima.net/api/city",
//查询参数
params:{
pname:"山东省"
}
}).then(result=>{
console.log(result)
data=result.data.list;
for(let i = 0;i < data.length;i++){
document.write(data[i] + "
");
}
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>查询城市</title>
<style>
.data-item{
border: 1px solid black;
width: 100px;
height: 25px;
font-size: 20px;
font-style:italic;
list-style:none;
}
div{
font-size: 15px;
}
</style>
</head>
<body>
<div>当前时间:
<label class = "time"></label>
</div>
<div>省份名称:
<input type="text" class="pro" value="">
<button class="find">查询</button></div>
<div>
城市列表:
</div>
<ul class="data">
<li class="data-item"></li>
</ul>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script>
let date = new Date();
let time = date.toLocaleTimeString()
let la=document.querySelector(".time").innerHTML=time;
setInterval(function(){
let date = new Date();
let time = date.toLocaleTimeString()
let la=document.querySelector(".time").innerHTML=time;
},1000)
let btn = document.querySelector(".find");
btn.addEventListener("click",()=>{
let pro = document.querySelector(".pro").value;
console.log(pro);
axios({
url:"http://hmajax.itheima.net/api/city",
params:{
pname:pro
}
}).then(result=>{
let list = result.data.list;
let data = list.map(areaName=>`${areaName}`).join('')
console.log(data)
document.querySelector(".data").innerHTML=data
})
})
</script>
</body>
</html>
请求方法 | 操作 | |
---|---|---|
GET | 获取数据 | |
POST | 提交数据 | |
PUT | 修改数据(全部) | |
DELETE | 删除数据 | |
PATCH | 修改数据(部分) |
axios({
url:'目标资源地址',
method:'请求方法',
data:{
参数名:值
}
}).then((result)=>{
// 对请求数据进行处理
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
</head>
<body>
<div>请输入用户名:<input type="text" class="userName"></div><br/>
<div>请输入密码:<input type="password" class="password"></div><br/>
<button class="register">注册</button>
<script>
let register = document.querySelector(".register");
register.addEventListener("click",function(){
let user = document.querySelector(".userName");
let psw = document.querySelector(".password");
axios({
url:"http://hmajax.itheima.net/api/register",
method:"post",
data:{
username:user.value,
password:psw.value
}
}).then((result)=>{
alert(result.data.message)
console.log(result)
}).catch(error=>{
console.log()
alert(error.response.data.message);
})
})
</script>
</body>
</html>
const xhr = new XMLHttpRequest();
xhr.open("请求方法","资源路径")
// 监听事件
xhr.addEventListener('loadend',()=>{
console.log(xhr.response)
})
// 发起请求
xhr.send()
const xhr = new XMLHttpRequest();
xhr.open("请求方法","资源路径")
// 监听事件
xhr.addEventListener('loadend',()=>{
console.log(xhr.response)
})
//告诉服务器传递的内容类型
xhr.setRequestHeader('Content-Type','application/json')
//准备数据并转成json字符串
const data={};
const data1=JSON.stringify(data);
// 发起请求
xhr.send(data1)
// 创建promise对象
const p = new Promise((resolve,reject)=>{
// 执行异步任务并传递结果
setTimeout(()=>{
// 成功调用:resolve(值)触发then()执行
resolve('模拟AJAX请求-成功结果')
// 失败调用:reject(值)触发catch()执行
reject(new Error("模拟AJAX请求-失败结果"))
},2000)
})
// 接收结果
p.then(result=>{
// 成功
console.log(result)
}).catch(error=>{
// 失败
console.log(error)
})
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
style>
head>
<body>
<div>
<div>省份div>
<div class="province">div>
div>
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js">script>
<script>
getDefaultArea()
async function getDefaultArea(){
// 捕获错误
try{
const Pobj=await axios({url:"http://hmajax.itheima.net/api/province"})
const pname = Pobj.data.list[0]
// 显示到页面上
document.querySelector('.province').innerHTML = pname
}catch(error){
//接收错误信息
console.dir(error)
}
}
script>
body>
html>
const p = Promise.all([Promise对象,Promise对象,...,Promise对象])
p.then(result=>{
}).catch(erroe=>{
})