axios在vue中的使用
创始人
2024-12-13 22:10:15
0

文章目录

  • 一、axios是什么?
  • 二、使用步骤
    • 2.1 下载
    • 2.2 引入
    • 2.3 使用
      • Get请求
      • Post请求
      • Forms
  • 三、封装


一、axios是什么?

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

二、使用步骤

2.1 下载

npm install  axios -S 

2.2 引入

import axios from 'axios' 

2.3 使用

Get请求

import axios from 'axios' // 向给定ID的用户发起请求 axios.get('/user?ID=12345')   .then(function (response) {     // 处理成功情况     console.log(response);   })   .catch(function (error) {     // 处理错误情况     console.log(error);   })   .finally(function () {     // 总是会执行   });  // 上述请求也可以按以下方式完成(可选) axios.get('/user', {     params: {       ID: 12345     }   })   .then(function (response) {     console.log(response);   })   .catch(function (error) {     console.log(error);   })   .finally(function () {     // 总是会执行   });    // 支持async/await用法 async function getUser() {   try {     const response = await axios.get('/user?ID=12345');     console.log(response);   } catch (error) {     console.error(error);   } } 

Post请求

发起一POST请求

axios.post('/user',{ 	firstName:'Fred', 	lastName:'Flintstone' }).then(function(response){ 	console.log(response); }).catch(function(error)){ 	console.log(error); } 

发起多个并发请求

function getUserAccount() {   return axios.get('/user/12345'); }  function getUserPermissions() {   return axios.get('/user/12345/permissions'); }  const [acct, perm] = await Promise.all([getUserAccount(), getUserPermissions()]);  // OR  Promise.all([getUserAccount(), getUserPermissions()])   .then(function ([acct, perm]) {     // ...   }); 

将HTML Form 转换JSON进行请求

const {data} = await axios.post('/user', document.querySelector('#my-form'), {   headers: {     'Content-Type': 'application/json'   } }) 

Forms

Multipart (multipart/form-data)

const {data} = await axios.post('https://httpbin.org/post', {     firstName: 'Fred',     lastName: 'Flintstone',     orders: [1, 2, 3],     photo: document.querySelector('#fileInput').files   }, {     headers: {       'Content-Type': 'multipart/form-data'     }   } ) 

URL encoded form (application/x-www-form-urlencoded)

const {data} = await axios.post('https://httpbin.org/post', {     firstName: 'Fred',     lastName: 'Flintstone',     orders: [1, 2, 3]   }, {     headers: {       'Content-Type': 'application/x-www-form-urlencoded'     } }) 

三、封装

在src下创建utils目录,在该目录下创建文件 request.js

import axios from "axios"; import router from '../router/index' // 1、创建axios对象 const service = axios.create({ 	baseURL: 'http://localhost:9090/drsm', }); //2、请求拦截器  service.interceptors.request.use(config => { 	//在headers中加入认证信息。 	// if(token){ 	//        config.headers['Token'] = token 	//    } 	return config }, error => { 	Promise.reject(error); })  //响应拦截器 service.interceptors.response.use( 	(response) => { 		//console.log(response); 		const { 			data 		} = response; 		if (data.code === 200 || data.code === 201) { 			//回传的数据 			return data; 		} else { 			return Promise.reject(new Error(data.message)) 		} 	}, 	error => { 		let msg; 		//console.log(error); 		if (error.response) { 			switch (error.response.status) { 				case 500: 					msg = "500-服务器发生错误,请及时联系管理员" 					break; 				case 404: 					msg = "404-你访问的页面不存在" 					break; 				case 401: 					msg = "401-请先登录系统,再完成操作" 					break; 				case 403: 					msg = "403-额...没有权限访问" 					break 				default: 					msg = "555-发生错误,请及时联系管理员" 					break; 			} 			//登录界面发生错误时不跳转到错误页, 			if(error.config.url=='/login'){ 				return Promise.reject(new Error(msg)) 			} 			router.push({ 				path: '/error', 				query: { 					msg: msg 				} 			}); 		} else { 			msg = "连接不到目标服务器" 		}  		return Promise.reject(new Error(msg)) 	} )  export default service; 

在utils下创建api目录,接着创建文件 course.js

import qs from 'qs' import service from '@/utils/request'   export function loginReq(name, pwd) { 	const data = { 		username: name, 		password: pwd 	}; 	return service.post('/login',qs.stringify(data)); }   export function addUserReq(user){ 	return service.post('/addUser',qs.stringify(user)); }  export function userExist(username){ 	let url = '/userExist/'+username; 	return service.get(url); } 

上一篇:docker略览

下一篇:三星c9系统更新卡死

相关内容

热门资讯

透视肯定!模拟器打开hhpok... 透视肯定!模拟器打开hhpoker,约局吧德州可以透视吗(透视)好像有开挂辅助安装(有开挂透视),约...
玩家必用!wepoker破解工... 玩家必用!wepoker破解工具,wpk有那种辅助吗(透视)一贯有开挂辅助黑科技(有开挂教学);1、...
透视最新!wepoker透视版... 透视最新!wepoker透视版下载,wepoker辅助器下载(透视)本来有开挂辅助器(有开挂秘笈);...
让我来分享经验!wpk俱乐部是... 您好,aapoker怎么提高中牌率这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
教程攻略!wpk软件是真的吗,... 教程攻略!wpk软件是真的吗,wepoker安装教程(透视)竟然有开挂辅助黑科技(有开挂技巧);一、...
重大通报!wepoker有没有... 重大通报!wepoker有没有挂,wpk有辅助器吗(透视)竟然有开挂辅助器(竟然有开挂);小薇(透视...
最新技巧!wpk真的有透视嘛,... 最新技巧!wpk真的有透视嘛,WePoKer辅助器(透视)从前有开挂辅助神器(有开挂猫腻);1、德州...
必备科技!来玩app破解,wp... 必备科技!来玩app破解,wpk俱乐部是做什么的(透视)确实有开挂辅助安装(有开挂细节);wpk俱乐...
重大通报!wepoker有没有... 您好:wepokerplus透视脚本免费这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都...
透视科技!wepoker黑侠辅... 透视科技!wepoker黑侠辅助器,福建大菠萝万能辅助器(透视)其实有开挂辅助器(有开挂功能);1、...