vue 项目配置反向代理导致项目白屏

news/2024/7/10 1:40:05 标签: vue, 白屏, 不显示, springboot

问题:vue 项目配置反向代理导致项目白屏

一、现象描述

添加反向代理代码后,前端运行白屏

// 设置baseURL,8888是后端端口号,前端请求默认发送到baseURL的地址
var axios = require('axios')
axios.defaults.baseURL = 'http://localhost:8888/api'
// 全局注册,之后可在其他组件中通过 this.$axios 发送数据
Vue.prototype.$axios = axios

二、问题分析

通过F12查看控制台

Uncaught TypeError: Cannot set properties of undefined (setting 'baseURL')

Uncaught TypeError: Cannot read properties of undefined 是一个 JavaScript 运行时错误,它表示试图访问一个未定义(undefined)对象的属性。访问对象是一个不存在的变量或者对象的属性。

axios.defaults.baseURL = 'http://localhost:8888/api'

出问题的是这句话,注释掉就能显示。

代码解释(熟悉的同学可略过此节)

axios.defaults.baseURL = 'http://localhost:8888/api' 是一行JavaScript代码,通常用于配置Axios库的默认基础URL。

  1. axios: Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。它允许你发出GET、POST等HTTP请求。

  2. defaults: 这是Axios对象的一个属性,用于设置Axios的默认配置。

  3. baseURL: 这是Axios默认配置中的一个属性,用于设置请求的基础URL。这意味着当你使用axios发起请求时,如果请求的URL以baseURL开始,那么你不需要重复写baseURL

  4. 'http://localhost:8888/api': 这是你设置的基础URL。这意味着当你使用axios发起请求时,除非你明确指定了不同的URL,否则都会基于这个URL。例如,如果你发起一个GET请求,而请求的URL是'/users',那么实际发送的请求URL会是'http://localhost:8888/api/users'

设置基础URL的主要目的是为了简化代码和提高可读性。例如,如果你有一个API端点是'/users',那么你可以这样发起请求:

axios.get('/users')  
  .then(response => {  
    console.log(response.data);  
  })  
  .catch(error => {  
    console.error(error);  
  });

而不是这样:

axios.get('http://localhost:8888/api/users')  
  .then(response => {  
    console.log(response.data);  
  })  
  .catch(error => {  
    console.error(error);  
  });

通过设置基础URL,你可以避免在每个请求中重复写相同的URL前缀。

三、解决方案

1.检查变量是否定义

2.使用默认参数

3.使用链式表达

博主的项目实际解决方法是通过

import axios from 'axios'

代替

// var axios = require('axios')

根本原因分析,先挖个坑。


http://www.niftyadmin.cn/n/5268341.html

相关文章

redis基本用法学习(主要数据类型)

redis官网教程中介绍有三种方式连接redis:命令行、gui工具和编程连接:   命令行方式主要是在命令行中输入redis-cli后,通过命令方式与redis服务进行交互,支持两种模式:REPL模式(简单的交互式的编程环境&a…

Android-Framework 默认横屏、dpi设置

一、环境 高通865 Android 10 二、源码修改位置 1、修改dpi device/qcom/kona/kona.mk -116,7 116,7 TARGET_USES_RRO : true# system prop for Bluetooth SOC typePRODUCT_PROPERTY_OVERRIDES \vendor.qcom.bluetooth.sochastings \ - ro.sf.lcd_density480ro.sf.lcd_d…

go context.todo生成默认空的上下文

在 Go 语言的标准库中,context.TODO() 是一个函数,用于返回一个空的 Context 对象。TODO 是 "to do" 的缩写,表示该上下文对象被保留作为将来可能使用的占位符。 Context 是 Go 语言中用于传递请求的上下文环境的一种机制。它可以用…

打印机设置发票收据打印

由于各种打印机型号不一样,设置方式打印效果出入也很大,存在打印不全问题,发票右侧小数点后面的数字打印不出来、位置靠上下左右登问题,比较通用的设置方式如下: 首先找到控制面板,找到设备和打印机 进入到…

Vue学习计划-Vue2--VueCLi(七)nextTick、、浏览器本地缓存、脚手架配置代理

1. nextTick 语法: this.$nextTick(回调函数)作用:在下一次DOM更新结束后执行其指定的回调什么时候用: 当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行 **举个栗子:…

Vue3创建应用教程

前提条件: 熟悉命令行已安装 16.0 或更高版本的 Node.js 命令行 在当前工作目录输入cmd打开命令行窗口在命令行窗口输入(不需要输入>号) 这一指令将会安装并执行 create-vue,它是 Vue 官方的项目脚手架工具。你将会看到一些诸如 TypeScr…

关于文件操作---C语言

引言 关于文件,想必大家或多或少都会有些了解,文件可以帮我们储存数据,不同格式的文件可以储存不同类型的数据,也可以将文件中的数据用不同的方式打开。电脑中的文件,是放在硬盘上的。在我们编写代码并运行的时候&…

Linux的双网口(内网+外网)的IP报文转发

一、背景: PC1的主机与PC2的主机不是同一个网段,中间经过一个双网口Linux设备中转,以实现PC1和PC2的数据报文交互。 二、实物: PC1主机的IP地址:192.178.111.111 PC2主机的IP地址: 192.168.130.32 …