前后端不报错&传值正常:前端接收不到数据|前后端检查问题流程

当前后端数据传输无误但前端无法显示数据时,通常是由于后端未正确查询数据库。检查流程包括:判断问题源头、前端控制台分析、网络请求验证及后端控制台排查。解决办法涉及理解callback函数的角色,确保数据从底层系统到应用层的完整传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 问题:前后端不报错&传值正常:前端接收不到数据

1.1 前端

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 后端

@RestController
@RequestMapping("/ums-user")
public class UmsUserController {
    @Resource
    IUmsUserService userService;
    @GetMapping("/page")
    ResultJson page(UmsUser umsUser) throws InterruptedException {
        System.out.println(umsUser);
        System.out.println(umsUser.getPageNo());
        System.out.println(umsUser.getPageSize());
        return ResultJson.success(new Page<>(umsUser.getPageNo(),umsUser.getPageSize()),"检验:后端是否正常传值给前端");
         }
}

在这里插入图片描述

1.3 解决

在这里插入图片描述

return ResultJson.success(userService.page(new Page<>(umsUser.getPageNo(),umsUser.getPageSize())),"解决传值问题的返回值");

在这里插入图片描述
之后开始查询数据库
在这里插入图片描述

1.4 原因:后端没查询数据库

页面没数据----->后端没查询数据库----->接受前端参数没赋值给service,直接将前端接受的参数返回给前端

前端参数两个作用:

  1. 单纯提供:当前页,一页几条数据(有问题时前端控制台依旧有:current、size)
  2. 传递到service,让service带这参数,对数据库经行【分页查询】----service没有收到参数,所以没有查询数据库。后端:控制台没有输出查询语句+前端:返回records是0

传值正常:此次报错指前后端传值功能正常(都能收到数据),但是问题也体现在此:值≠预期值。前端传后端:参数A(√),后端传前端:参数A(×),预期值是数据库数据。

2 检查问题流程

2.1 判断是前后端,谁的问题----传值

在这里插入图片描述

2.2 前端问题----控制台(Fn+F12)

2.2.1 console—看报错 :ReferenceError: params is not defined

在这里插入图片描述

2.2.1 对比前端代码

在这里插入图片描述
解决:对象。属性 才能用
在这里插入图片描述

2.2.1 network:查看自己的请求

在这里插入图片描述

2.2.2 点击请求:preview

在这里插入图片描述
由图,前端成功发送参数,后端也成功返回返回值

2.2 后端问题----控制台

3 前端问题:response is not defined

在这里插入图片描述

3.1 原因

在这里插入图片描述
括号里都是:传过来的值/函数(用形参表示)
callback(回调函数)是一个系统函数,就好像println

【index页面】
methods:{
			getTableData(){
				this.get('/ums-user/page',this.params,response => {   ---发出请求,拿返回值
					this.tableData = response               ---拿【加工2】返回值赋值给tableData
				//等价于 this.tableData = response.data.obj
				})
			},
const get = (url,params,callback) => {
	request(url,'get',params,response =>{
		callback(response.obj)           ---接收【加工1】,返回【加工2】response.obj = response.data.obj
	})
}
【request底层】
const request = (url, method, params,callback) => {
     ......
			 callback(response.data)    ----后端返回response,再返回给调用函数get返回值response.data【加工1】
		}

callback意义:如果只是在没有callback函数,我只能在request处新建接收函数response,新建一个请求发送给get,get收到值再新建一个请求发送给getTabledate。即值到谁手里,就得接收包装再发送。

callback在参数的位置():get方法内部调用callback方法后的返回值,再传给调用get方法的方法A
调用的结果,都用response(满载而归卡车)返回给调用方
1.调用get函数的函数A,需要传入3个参数
2.3个参数去向=get方法执行:
1)调用request函数:发送请求后,get拿回来response=(request的)response.data
2)调用callback函数:将1)get拿回来response,返回给index组件中调用get方法的函数

解决:
在这里插入图片描述

const get = (url,params,callback) => {
	request(url,'get',params,response =>{
		callback(response.obj)
	})
}

4 callback(回调函数)

一般情况:程序运行
▶ 程序员-------调用:接口API(application programming interface,应用编程接口)------实现:应用编程(利用各种库,编写成具某种功用的应用)-------位于底层:系统编程(编写库函数:底层函数)
▶操作员 -----开关键------机器-----零件

特殊情况:callback(回调函数)-----私人定制
▶程序员-------接口API:传入【函数1】------应用编程:传递【函数1】-------位于底层:系统编程,接收【函数1】中间函数,组装完成【特定函数2】-------应用编程:接收【特定函数2】-------API-----程序员
▶ 公民 -----办事处:传入【个人信息】------身份证系统------用【个人信息】制作身份证-------身份证系统------办事处------公民拿到【专有身份证】
callback(回调函数) =函数1/个人信息。
有一些位于底层库函数是不完整的,即:在传入一个回调函数之前,中间函数是不完整的。

&lt;think&gt;好的,我现在需要帮助用户解决在Kali系统中安装Docker Compose时遇到的错误,特别是APT仓库未签名的问题。用户提到错误信息是&ldquo;仓库未签名 buster InRelease&rdquo;。首先,我应该回忆一下之前提供的安装步骤,以及用户现在遇到的问题可能出在哪里。 根据用户之前的对话,我之前给出了安装Docker Compose的方法是通过下载二进制文件,但用户现在可能尝试通过APT仓库安装,或者是在安装Docker时遇到了仓库签名的问题。用户引用了几个同的源,包括官方Docker仓库和清华镜像,可能用户尝试了同的仓库导致签名错误。 首先,我需要确定用户的具体操作步骤。用户可能在添加Docker仓库到Kali后,运行sudo apt update时遇到了签名错误,因为Kali基于Debian,但Docker的官方仓库可能有正确的签名密钥被系统信任。常见的错误可能是&ldquo;NO_PUBKEY&rdquo;或者&ldquo;签名无效&rdquo;。 解决方案应该是导入Docker的官方GPG密钥,以验证仓库的签名。根据引用中的信息,用户可能已经按照步骤添加了仓库,但缺少了密钥的导入步骤。例如,在引用[2]中提到添加软件源的GPG密钥,可能用户漏掉了这一步。 接下来,我需要检查正确的步骤是否包括下载并添加GPG密钥。通常,添加APT仓库后需要导入对应的公钥,否则会提示未签名的问题。因此,我应该建议用户运行如下的命令来导入密钥: curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg 这应该能解决仓库未签名的问题。如果用户之前使用了同的镜像源,比如清华大学的镜像,可能需要整仓库URL和对应的密钥,但通常Docker的官方密钥适用于所有镜像。 另外,用户可能使用了旧版本的Kali(如基于Debian buster),而Docker的仓库可能已经更新,需要确认仓库配置是否正确。例如,确保/etc/apt/sources.list.d/docker.list中的发行版名称(如buster)与系统兼容。 如果用户仍然遇到问题,可能需要清除旧的仓库信息,重新添加并更新缓存。或者检查是否有拼写错误在仓库配置文件中。 此外,用户提到安装Docker Compose,我之前建议的是下载二进制文件的方式,但用户可能尝试通过APT安装docker-compose-plugin,这可能会遇到依赖问题或者版本兼容。需要指出在Kali中推荐使用二进制安装方式,因为APT源中的版本可能较旧或有依赖问题。 最后,应该提醒用户在解决问题后,重新运行sudo apt update和安装docker-compose的步骤,或者继续使用二进制安装方法。同时,处理可能残留的旧配置或缓存,比如清除/var/lib/apt/lists/中的部分文件。&lt;/think&gt;### Kali系统解决Docker Compose安装错误及APT仓库签名问题 #### 一、修复APT仓库未签名问题 当出现`仓库未签名 buster InRelease`错误时,说明系统未信任Docker仓库的GPG密钥。执行以下操作: 1. **清理旧仓库配置**(若存在冲突): ```bash sudo rm -f /etc/apt/sources.list.d/docker.list* ``` 2. **添加正确仓库源**(任选一种): - **阿里云镜像加速版**: ```bash echo &quot;deb [arch=amd64 signed-by=/usr/share/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/debian buster stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list ``` - **官方仓库版**: ```bash echo &quot;deb [arch=amd64 signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian buster stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list ``` 3. **手动导入GPG密钥**(核心步骤): ```bash sudo mkdir -p /usr/share/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg ``` 4. **强制更新仓库缓存**: ```bash sudo apt update --allow-insecure-repositories ``` #### 二、安装Docker Compose ##### 方案一:推荐二进制安装(绕过APT依赖问题) 1. **下载最新版二进制文件**: ```bash sudo curl -L &quot;https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose ``` 2. **赋权并验证**: ```bash sudo chmod +x /usr/local/bin/docker-compose docker-compose --version # 应输出版本号 ``` ##### 方案二:APT安装(需先修复签名) ```bash sudo apt install docker-compose-plugin docker compose version # 注意新版命令格式 ``` #### 三、典型错误处理 1. **密钥错误补充方案**: ```bash # 若仍提示NO_PUBKEY,手动添加密钥 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8 ``` 2. **残留缓存清理**: ```bash sudo rm -rf /var/lib/apt/lists/partial/* sudo apt clean &amp;&amp; sudo apt update ``` #### 四、验证完整工作流 ```bash # 创建测试docker-compose.yml echo &#39;version: &quot;3&quot; services: hello-world: image: hello-world&#39; &gt; docker-compose.yml # 运行测试 docker-compose up ``` --- ### 关键点解析 1. **签名问题本质**:Kali基于Debian,但未预装Docker的GPG密钥,需通过`--signed-by`参数显式指定密钥路径[^2][^3] 2. **架构兼容性**:必须确认`[arch=amd64]`与当前系统架构匹配(Kali默认使用amd64) 3. **版本对应关系**:`buster`对应Debian 10,需确保仓库声明与系统版本一致[^1][^4] --- ### 相关问题 1. 如何查看Kali Linux的Debian基础版本? 2. Docker Compose二进制安装与APT安装有何区别? 3. 如何彻底卸载Docker及残留配置? 4. 为什么国内推荐使用镜像加速仓库?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值