浏览器和服务器之间的通信 ajax axios 接口 接口文档
以咱们用的最多的浏览器为例,和服务器通讯的过程就像聊微信?
-
浏览器:输入URL地址-->请求
-
服务器:接收请求并返回对应的资源-->响应
-
浏览器:接收并解析响应内容
-
可以在浏览器开发者界面的
network
分类查看
URL:
协议名:
-
http:// ,https://(会加密,安全一些)
-
协议是网络协议的简称,用来保证通信的双方能读懂彼此发送过来的消息内容。
主机:(域名)
-
主机指的是在互联网(局域网)中提供服务的设备,可以通过ip或者域名访问
-
如果访问的是域名:dns服务器解析--》ip地址
端口号
-
端口号是 0 - 65535 之间的整数
-
计算机内部服务和外部通讯的 虚拟通道
-
一个端口一次只能被一个服务占用(做核酸?)
-
http默认的端口是80,可以省略不写
-
https默认的端口是443
- 使用XMLHttpRequest异步对象和服务器通讯。
-
不重新刷新页面的情况下与服务器通信,交换数据,或更新页面
-
是否和服务器交互?network页面确认
-
是否重新加载页面?
使用ajax
和服务器通讯时,被请求的URL地址,叫做数据接口(接口,API接口)
-
ajax
请求的服务器一般称之为:接口服务器 -
接口服务器一般提供操纵服务器数据的一系列方法
-
调用(请求)接口有点类似于调用后端封装好的函数
-
工作中接口一般由后端工程师编写,并提供接口文档指导调用
接口文档:
-
作用:
-
指导前端开发者如何和接口服务器通讯
-
-
文档内容:
-
服务器地址
-
请求的方法
-
有了这两个就可以用
ajax
和服务器交互
-
-
根据需求可能会有更多的信息:
-
接口参数
-
返回值格式
-
额外的设置等...
-
-
<body>
<input type="text" class="ipt" placeholder="请输入查询的城市" />
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
document.querySelector('.ipt').onkeyup = function (e) {
// 限制回车触发
if (e.keyCode !== 13) return
const city = this.value.trim()
// 内容非空判断
if (!city) {
return alert('请输入查询的城市')
}
// ajax前后端交互
axios({
url: `http://ajax-api.itheima.net/api/weather?city=${city}`,
method: 'get',
}).then((res) => {
console.log(res)
if (res.data.data.errcode === 100) {
alert('该城市未得到天气预报')
} else {
alert(res.data.data.data[0].wea)
}
})
}
</script>
</body>
代码解析:
-
导入了axios网络请求库
-
在输入框按下回车,并且内容不为空时和服务器交互-->请求
-
url地址就是服务器的资源地址
-
-
服务器内容响应回来之后触发then-->响应
-
将获取到的响应内容设置给then中回调函数的参数
-
Ajax
是一种技术,可以在不刷新浏览器的情况下和服务器通讯 -
原生的写法较为繁琐,就有了一些封装好的请求库,可以简化这一操作
-
axios
是目前最为流行的请求库,在浏览器端是基于Ajax
封装 -
ajax
是技术,有原生的写法--->较为繁琐 -
axios
-->库
,简化ajax
的调用
-
url?key=value&key2=value2
-
axios.get('url',{params:{key:value}})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫