axios请求和axios常见的请求方式

1、axios请求下载和引入

1.1、下载指令

可以直接用下面指令或者也可以查看axios中文文档:axios中文文档|axios中文网 | axios (axios-js.com)
 

npm install axios

可以简写成 :npm i axios

1.2、axios的引入方式

import axios from  "axios"

2、请求封装(最简单封装)

2.1axios二次封装

api封装一

import axios from 'axios'

const instance = axios.create({
    baseURL: "请求地址",
    timeout: 1000,            //请求时间、1000是一秒
  });
  instance.interceptors.request.use(config => {
				const token =localStorage.getItem('token') // 替换为你的 Token
				if (token) {
					config.headers.Authorization =token
				}
				return config;
			  });
  // 添加请求拦截器
  instance.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });

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

export default instance

api封装二

import http from "api封装一的路径"

export const log1 =()=>http.get("请求地址")
export const log2 =(params)=>http.post("请求地址",params)
export const log3 =(id)=>http.delete(`请求地址/${id}`,id)

页面用法

import {log1,log2,log3,log4,log5} from "api封装二的路径"

用法

不带参数
log1().then((res) => {
  console.log(res);
})

带参数
log2({id:1}).then((res) => {
  console.log(res);
})

log3(1).then((res) => {
  console.log(res);
})

2.2axios二次封装,ts封装方式、ts的class封装

api封装一

import axios from  "axios"
const config  = {
    baseURL:"请求地址",
    timeout: 1000,            //请求时间、1000是一秒
}

class Request{
     instance:any;
     constructor(configInfo:any){
       this.instance = axios.create(configInfo);

       this.instance.interceptors.request.use((config:any)=>{
        let token = localStorage.getItem("token");
        if(token){
          config.headers.Authorization = token
        }
         return config
       })
       this.instance.interceptors.response.use((res:any)=>{
        return res.data
       })
     }
     get(url:string,params={}){
         return this.instance.get(url,{params})
     }
     post(url:string,data:any){
         return this.instance.post(url,data)
     }
     put(url:string,data:any){
         return this.instance.put(url,data)
     }
     delete(url:string,data:any){
         return this.instance.delete(url,data)  
     }
}
export default new Request(config);

api封装二

import http from "api封装一";

export const log1 = () => http.get("请求地址");

interface Iuser {
  id: number;
  name: string
}
export const log2 = (params:Iuser) => http.post("请求地址", params);

export const log3 = (id:number,name:string) => http.put(`请求地址/${id}`,{name:name});

export const log4 = (id:number) => http.delete(`请求地址/${id}`,id);

页面用法

import {log1,log2,log3,log4} from "api封装二的路径"


用法

不带参数
log1().then((res) => {
  console.log(res);
})

带参数

post写法一
log2({id:1,name:"name的参数").then((res) => {
  console.log(res);
})

post写法二
let params={
    id:1,
    name:"name的参数"
}
log2(params).then((res) => {
  console.log(res);
})

log3(1,name的参数).then((res) => {
  console.log(res);
})

log4(1).then((res) => {
  console.log(res);
})

3、axios常见的请求方式

3.1、get请求,一般多用于获取数据(一般都是不带参数的)

方法一、

import axios from 'axios';             //引入axios请求

//不带参数
axios.get('请求地址').then(res => {
    console.log(res);
})

//带参数,params是携带的参数
//方法一
axios.get('请求地址',{params:{id:1}}).then(res => {
   console.log(res);
})

//方法二
axios.get('请求地址',{id:1}).then(res => {
   console.log(res);
})

方法二、

        二次封装的写法,login只是一个名字这个可以自定义的

不带参数
export const login= (params) => http.get("请求地址");

带参数
方法一、
export const login = (params) => http.get("请求地址", params);

方法二、
export const login = (params) => http.get("请求地址", {id:1});

ts版
interface log {
  id: number;
}
export const login = (params:log) => http.get("请求地址", params);

3.2、post请求,主要提交表单数据和上传文件(一般都是携带参数的)

 方法一、

import axios from 'axios';             //引入axios请求

//不带参数
axios.post('请求地址').then(res => {
    console.log(res);
})

//带参数,params是携带的参数
//方法一
axios.post('请求地址',{params:{id:1}}).then(res => {
   console.log(res);
})

//方法二
axios.post('请求地址',{id:1}).then(res => {
   console.log(res);
})

方法二、

        二次封装的写法,login只是一个名字这个可以自定义的

不带参数
export const login= (params) => http.post("请求地址");

带参数
方法一、
export const login = (params) => http.post("请求地址", params);

方法二、
export const login = (params) => http.post("请求地址", {id:1});

ts版
interface log {
  id: number;
}
export const login = (params:log) => http.get("请求地址", params);

3.3、put请求,对数据全部进行更新(该请求和post类似,只是请求方法不同)

 方法一、

import axios from 'axios';             //引入axios请求

//不带参数
axios.put('请求地址').then(res => {
    console.log(res);
})

//带参数,params是携带的参数
//方法一
axios.put('请求地址',{params:{id:1}}).then(res => {
   console.log(res);
})

//方法二
axios.put('请求地址',{id:1}).then(res => {
   console.log(res);
})

方法二、

        二次封装的写法,login只是一个名字这个可以自定义的

不带参数
export const login= (params) => http.put("请求地址");

带参数
方法一、
export const login = (params) => http.put("请求地址", params);

方法二、
export const login = (params) => http.put("请求地址", {id:1});

ts版
export const login= (id:number,name:string) => http.put(`请求地址/${id}`,{name:name});

3.4、patch请求,只对更改过的数据进行更新(该请求和post类似,只是请求方法不同)

 方法一、

import axios from 'axios';             //引入axios请求

//不带参数
axios.get('请求地址').then(res => {
    console.log(res);
})

//带参数,params是携带的参数
//方法一
axios.get('请求地址',{params:{id:1}}).then(res => {
   console.log(res);
})

//方法二
axios.get('请求地址',{id:1}).then(res => {
   console.log(res);
})

方法二、

        二次封装的写法,login只是一个名字这个可以自定义的

不带参数
export const login= (params) => http.patch("请求地址");

带参数
方法一、
export const login = (params) => http.patch("请求地址", params);

方法二、
export const login = (params) => http.patch("请求地址", {id:1});

ts版
interface log {
  id: number;
}
export const login = (params:log) => http.patch("请求地址", params);

3.5、delete请求,删除请求(参数可以放在url上也可以和post一样放在请求体中)

 方法一、

import axios from 'axios';             //引入axios请求

//不带参数
axios.delete('请求地址').then(res => {
    console.log(res);
})

//带参数,id是携带的参数
//方法一
axios.delete('请求地址',{params:{id:1}}).then(res => {
   console.log(res);
})

//方法二
axios.delete('请求地址',{id:1}).then(res => {
   console.log(res);
})

//方法三
axios.delete(`请求地址/?id=`+id).then(res => {
   console.log(res);
})

方法二、

        二次封装的写法,login只是一个名字这个可以自定义的

不带参数
export const login= () => http.delete("请求地址/id");

带参数
方法一、
export const login = (id) => http.delete("请求地址/id",id);

方法二、
export const login = (id) => http.delete("请求地址/?id="+id);

方法三,绑定到接口上、
export const login = (id) => http.delete(`请求地址/${id}`,id);

ts版
export const login = (id:number) => http.delete(`请求地址/${id}`,id);

4、常用的几种URL参数的拼接方法

1、单个参数
let id=1

url:"路径/?id="+id

url:`路径/${id}`

2、多个参数要用到这个“ `` ”和&这个隔开,不能穿汉字
let id=1
let name="canshu"

url:`路径/?id=${id}&name=${name}`    //多个参数用&隔开

3、全动态拼接
不带参数的
let ipaddr = "192.162.1";
let path = "/user/index";
let url   = "http://" + ipaddr +path ;
console.log(url);// http://192.168.1/user/index"

带参数的
let ipaddr = "192.162.1.1.....";
let path = "/arrg/box";
let getTimestamps = new Date().getTime();
let url = "http://" + ipaddr + path + "?timestamps=" + getTimestamps;
console.log(url);

使用问号和与号拼接参数:
var loadsrc = $(this).attr('href');
var companyId = $(this).attr('companyId');
var companyName = $(this).text();
window.location.href = loadsrc + '?companyid=' + companyId + '&companyName=' + companyName;

5、axios状态码大全里面还包含了js基础下面链接

 HTTP状态码大全 - 常用参考表对照表 - 脚本之家在线工具 (jb51.net)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小 汐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值