mockjs无法拦截axios发出的请求
原因:mockjs需要在axios之前注册实例,不然无法拦截请求;
// import { axiosGet } from '../base/index.ts' import axios from 'axios' import Mock from 'mockjs' Mock.mock('http://localhost:8080/xxx','get',()=>{ alert(222) return Promise.resolve('登陆成功') }) // Mock.mock(/\/xxx/,'get',()=>{ //最好不要用字符串,字符串要全部都写上才能找到,最好用正则判断。 // alert(222) // return Promise.resolve('登陆成功') // }) Mock.mock('/xxx','get',(options)=>{ //看好是post还是get请求方式 //options里有请求参数等; alert(222) return Promise.resolve('登陆成功') })
Mock.mock('/xxx\?name=张三&sex=男','get',(options)=>{ //要么直接在url上加上请求参数去捕获(主要是\?,不然?在正则是自己的含义),要么从options拿到参数捕获。
alert(222)
return Promise.resolve('登陆成功')
})
export function getLoginInfo(params) { alert(params) // return axiosGet({ params }) return axios('/xxx') }
Mock.mock(url,type,funciton)
url可以填绝对路径,也可以填正则表达式,也可以填url部分字符串;