前端知识-4、前后端交互axios

Axios 是一个基于 promise(异步实现) 的 HTTP 库,可以用在浏览器和 node.js 中使用,原生的js或者使用jquery来发生请求进行前后端数据交互,代码写起来过于复杂。 官方文档地址:axios中文文档|axios中文网 | axios

1、安装axios

        方式一:使用 npm安装:

npm install axios

        方式二:直接通过script全局引用

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

2、axios发送get请求

案例一:get请求

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
	</head>
	<body>
		<script type="text/javascript">
		
		//  使用axios发送get请求
		 var url = 'http://127.0.0.1:5000/api/projects'
		
		 var response = axios.get(url)
		 response.then(function(res){
		 	console.log('then方法 成功中输出的res:',res)
		 },function(res){
		 	console.log('then方法  失败中输出的res:',res)
		// 	 请求失败返回的是一个error对象,响应信息在error的response属性中
		 })
		
			
		</script>	
	</body>
</html>

案例二:get请求参数传递

使用axios发送get请求传递查询字符串参数,有如下两种方式

        方式一:直接写在url地址中

const res =  axios.get('http://127.0.0.1:5000/api/pro_list?name=guaniu')

        方式二:使用params进行传递

const res =  axios.get('http://127.0.0.1:5000/api/pro_list',
           {params: {"name":"guaniu"}}
          )

3、axios发送post请求

        1、传递json格式的参数

axios.post('http://127.0.0.1:5000/api/user/login',
     {pwd: '123456',user: 'guniu'}
    )

        2、传递表单类型的参数

// 构建一个表单参数对象
var params = new URLSearchParams();
params.append('user', 'guaniu');
params.append('pwd', '123456');
axios.post('http://127.0.0.1:5000/api/user/login', params)

4、全局的axios配置

        1、配置基本的host地址

axios.defaults.baseURL ='https://api.example.com'

        2、配置请求头信息

axios.defaults.headers.common['Authorization'] = 'Bearer '+ token

5、axios拦截器

        1、请求拦截器

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // config为请求对象
  // 在发送请求之前
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

        2、响应拦截器

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response;
}, function (error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});

6、async await的使用

如果你不喜欢通过then和catch这个回调的方式来获取数据,也只可以通过async 和await的方式来处理异步部分。

async function login() {
// 登录接口
  const userInfo = {
    username: 'guaniu',
    password: '123456'
 }
  const response = await axios.post('http://api.keyou.site:8000/user/login/',
userInfo)
  console.log(response)
}

注意点:await 和只能在通过async定义的函数中使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值