当前位置:   article > 正文

vue2 系列:axios 使用_vue2使用axios

vue2使用axios

1. 安装依赖

  1. yarn add axios
  2. // or
  3. npm install axios

2. main.js 接口请求地址映射

  1. module.exports = {
  2. devServer: {
  3. host: "0.0.0.0",
  4. port: 80,
  5. open: true,
  6. proxy: {
  7. "/dev-api": {
  8. target: `http://1.1.1.1:8080`,
  9. changeOrigin: true,
  10. ws: true,
  11. pathRewrite: {
  12. ["^/dev-api"]: "",
  13. },
  14. },
  15. "/dev-api/file": {
  16. target: `http://1.1.1.1:9300`,
  17. changeOrigin: true,
  18. ws: true,
  19. pathRewrite: {
  20. ["^/dev-api"]: "",
  21. },
  22. },
  23. },
  24. },
  25. };

3. src/api/http.js 构建

  1. import axios from "axios";
  2. // 登录获取的 token (自己根据登录接口去替换)
  3. let token = "666";
  4. axios.defaults.headers["Content-Type"] = "application/json;charset=utf-8";
  5. const service = axios.create({
  6. baseURL: "/dev-api",
  7. timeout: 10000,
  8. });
  9. // 请求拦截
  10. service.interceptors.request.use(
  11. (config) => {
  12. const isToken = (config.headers || {}).isToken == true;
  13. if (token && isToken) {
  14. config.headers["Authorization"] = `Bearer ${token}`;
  15. }
  16. return config;
  17. },
  18. (err) => {
  19. console.log(err);
  20. return Promise.reject(err);
  21. }
  22. );
  23. // // 响应拦截
  24. service.interceptors.response.use(
  25. (res) => {
  26. const code = res.data.code || 200;
  27. const msg = res.data.msg;
  28. if (code !== 200) {
  29. console.log(res)
  30. console.log(msg);
  31. } else {
  32. console.log(res);
  33. return res.data;
  34. }
  35. },
  36. (err) => {
  37. console.log(err);
  38. return Promise.reject(err);
  39. }
  40. );
  41. export default service;

4. 在 src/api/login.js 使用 http.js 封装接口

  1. import api from "./http.js";
  2. // 登录
  3. export function login({ username, password }) {
  4. return api({
  5. url: `/login`,
  6. headers: {
  7. isToken: false,
  8. },
  9. method: "post",
  10. data: {
  11. username,
  12. password,
  13. },
  14. });
  15. }
  16. // 获取用户详细信息
  17. export function getInfo() {
  18. return api({
  19. url: `/getInfo`,
  20. method: "get",
  21. });
  22. }

5. 组件中调用接口

  1. <template>
  2. <div class="login">
  3. <button @click="handleLogin">login</button>
  4. </div>
  5. </template>
  6. <script>
  7. import { login } from "@/api/login.js";
  8. export default {
  9. name: "Login",
  10. data() {
  11. return {
  12. };
  13. },
  14. methods: {
  15. handleLogin() {
  16. login({username: 'yqcoder', password: '123456'}).then(res => {
  17. console.log(res)
  18. }).catch(err => {
  19. console.log(err)
  20. })
  21. }
  22. },
  23. };
  24. </script>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/529718
推荐阅读
相关标签
  

闽ICP备14008679号