赞
踩
1、安装
npm i axios
2、封装方法
- import axios from 'axios'
- import {
- Message
- } from 'element-ui'
- var Qs = require('qs'); // 处理 post 请求参数
-
- const http = {}
-
- // 创建axios
- const instance = axios.create({
- timeout: 5000,
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
- },
- withCredentials: true, // 表示跨域请求时是否需要使用凭证(携带 cookie)
- })
-
- // 请求拦截
- instance.interceptors.request.use(config => {
- return config
- }, err => {
- return Promise.reject(err)
- })
-
- // 响应拦截
- instance.interceptors.response.use(res => {
- if (res.status === 200) {
- switch (res.data.code) {
- case 10001:
- Message.warning({
- message: res.data.msg
- })
- break;
- ...
- }
- return res.data;
- }
- }, err => {
- return Promise.reject(err.response)
- })
-
- // get请求
- http.get = function (url, data = {}) {
- return new Promise((resolve, reject) => {
- instance.get(url, {
- params: data
- }).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err);
- })
- })
- }
-
- // delete请求
- http.del = function (url, data = {}) {
- return new Promise((resolve, reject) => {
- instance.delete(url, {
- params: data
- }).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err);
- })
- })
- }
-
- // post请求
- http.post = function (url, data) {
- return new Promise((resolve, reject) => {
- instance.post(url, Qs.stringify(data)).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err);
- })
- })
- }
-
- export default http
- function request(options) {
- options.method = options.method || "get";
- if (options.method.toLowerCase() == "get") {
- options.params = options.data;
- }
- return instance(options);
- }
-
- export default request;
3、封装函数
- import axios from "@/utils/axios";
-
- const url = {
- 'Register': '/register', // 注册
- 'SendMailCode': '/send/mail/code', // 发送邮箱验证码
- }
-
- // 注册
- export const register = data => axios.post(url.Register, data)
-
- // 获取验证码
- export const sendMailCode = email => axios.post(url.SendMailCode, {
- email
- })
- export default {
- getData(params) {
- return request({
- method: "get",
- url: "/data",
- data: params
- });
- },
- };
4、使用
- import { register, sendMailCode } from '@/api/login';
-
- methods: {
- register() {
- let that = this;
- that.loading = true;
- register(that.registerForm)
- .then((res) => {
- if (res.data.code == 1000) {
- that.goLogin();
- }
- that.loading = false;
- })
- .catch((err) => {
- that.loading = false;
- });
- },
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。