You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot REST接口对接jQuery获取数据失败求助

问题分析与解决方案

首先,我帮你梳理下当前代码里的几个关键问题,这些问题导致你无法获取并渲染数据:

1. 前端未处理返回的数组数据

你的后端/api/personels接口返回的是List<Personel>(JSON数组),但前端代码直接尝试访问data.id——这是单个对象的用法,数组本身没有id属性,自然取不到值。

2. 缺少错误调试逻辑

之前的代码没有处理请求失败的情况,你无法知道是请求没发出去、后端报错还是其他问题。

3. jQuery版本过老(可选但推荐)

你用的jQuery 1.10.2是很老的版本,可能存在一些兼容性问题,建议升级到较新的稳定版。

4. 后端潜在的空指针问题(额外提醒)

你的getPersonelByKartNoAndİseGiris方法里,if(!personel.equals(null))会导致NullPointerException:如果personel是null,调用equals()方法直接报错,应该改为if(personel != null)。


修正后的前端代码

<!DOCTYPE html>
<html>
<head>
    <title>Hello jQuery</title>
    <!-- 升级到最新稳定版jQuery -->
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script>
        function findPersonels() {
            $.ajax({
                type:"GET",
                url: "/api/personels",
                dataType: "json" // 明确指定返回类型为JSON,避免自动解析出错
            }).done(function(data) {
                // 先清空原有内容,防止重复点击时叠加数据
                $('.giriscikis-id').html('The IDs are: ');
                $('.giriscikis-ad').html('The names are: ');
                
                // 遍历返回的Personel数组,逐个渲染数据
                $.each(data, function(index, personel) {
                    $('.giriscikis-id').append('<br>' + personel.id);
                    $('.giriscikis-ad').append('<br>' + personel.ad);
                });
            }).fail(function(jqXHR, textStatus, errorThrown) {
                // 错误调试:在控制台打印详细信息,方便排查
                console.error('请求失败原因:', textStatus, errorThrown);
                console.log('响应状态码:', jqXHR.status);
                console.log('后端返回内容:', jqXHR.responseText);
                alert('获取数据失败,请打开浏览器控制台查看详情');
            });
        }
    </script>
</head>
<body>
    <div>
        <p class="giriscikis-id">The ID is </p>
        <p class="giriscikis-ad">The name is </p>
        <input type="button" id="doldur" name="doldur" value="field doldur" onclick="findPersonels();">
    </div>
</body>
</html>

额外验证步骤

  1. 先确认后端接口正常:直接在浏览器地址栏访问http://localhost:8080/api/personels(替换成你的实际端口),如果能看到类似[{"id":1,"ad":"张三"},...]的JSON数组,说明后端没问题;如果看不到,检查:
    • Personel类是否有public的getter方法(Spring Boot序列化JSON依赖getter)
    • personelService.findAll()是否真的从数据库获取到了数据
  2. 检查浏览器控制台:点击按钮后打开F12控制台,看是否有报错信息,比如跨域(不过你已经加了@CrossOrigin("*"),应该没问题)、请求404/500等。

内容的提问来源于stack exchange,提问作者superior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:37:42