oiooooio 2022-03-24 17:07 采纳率: 77.8%
浏览 44
已结题

vue的一个小问题搞不懂?

代码附加在最后,主要是函数axiosInit.

如下图, 为什么打印的日志不是:

xxx5555
xxxxx---0

而是:

xxxxx---1 request.js:56
xxxxx---0 request.js:49
Uncaught TypeError: window._app is undefined
    getBaseUrl request.js:9
    init request.js:16
    axiosInit request.js:50
    axiosRequest request.js:57
    ....

img


目的:
在main.js最后上报一条日志



// request.js

import axios from 'axios';

let axiosInited = false;
let service;

function init () {
    function getBaseUrl () {
        if (process.env.NODE_ENV === 'development') {
            return window._app.$store.state.vuex_host_dev;
        } else {
            return window._app.$store.state.vuex_host_prod;
        }
    }

    service = axios.create({
        baseURL: getBaseUrl(),
        timeout: 5000,
    });

    service.interceptors.request.use(
        (config) => {
            if (!config.headers) config.headers = {};
            config.headers.token = window._app.$store.state.vuex_token;
            config.headers['Content-Type'] = 'application/json;charset=utf-8';
            return config;
        },
        (error) => {
            console.log(error);
            return Promise.reject();
        }
    );

    service.interceptors.response.use(
        (response) => {
            if (response.status === 200) {
                return response.data;
            } else {
                Promise.reject();
            }
        },
        (error) => {
            console.log(error);
            return Promise.reject();
        }
    );
}

export const axiosInit = function () {
    console.log('xxxxx---0');
    init();
    axiosInited = true;
};

export const axiosRequest = function () {
    if (!axiosInited) {
        console.log('xxxxx---1');
        axiosInit();
    }
    console.log('xxxxx---2');
    return service;
};

// export default service;


//index.js

import { axiosRequest } from '../plugins/request';

const request = axiosRequest();

export const httpGet = (url, query, headers) => {
    return request({
        url: url,
        method: 'get',
        params: query,
        headers: headers,
    });
};

export const logOpened = (query) => {
    console.log('request', request);
    return httpGet('/xxx', query);
};


  • 写回答

2条回答 默认 最新

  • 归来巨星 前端领域新星创作者 2022-03-24 17:14
    关注

    你这个问题 描述的能详细一些吗 你的xxxxx----打的太多了没太理解你想输出什么 想要什么结果

    img

    再有这两个import引入 写在最上方 不要写代码中

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月25日
  • 已采纳回答 3月25日
  • 修改了问题 3月24日
  • 修改了问题 3月24日
  • 展开全部