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

使用AJAX读取对象属性失败,无法向HTML追加内容求助

问题排查与修复方案

核心问题分析

后端C#代码问题

你的后端返回的不是有效JSON数据:

  • 用return myData.ToString();返回匿名对象的字符串形式,只会得到类似<>f__AnonymousType0的类型名称,完全不是前端能解析的JSON格式。
  • 定义的bigCities列表未被使用,属于无效代码。

前端jQuery代码问题

  1. 注释了datatype: 'json',即使后端返回正确JSON,前端也可能无法自动将响应解析为对象。
  2. 使用已被弃用的async: false同步请求,会阻塞浏览器运行,还可能触发异常。
  3. result.forEach(function (result) {})中参数名与外层result变量重名,会导致变量覆盖,逻辑混乱。
  4. 后端返回的是单个对象,你却用数组专属的forEach方法遍历,直接会报错;$.each虽能遍历对象属性,但后续追加HTML的逻辑是按数组元素处理,完全不匹配数据结构。

修复步骤

1. 修复后端C#代码

如果要返回myData对象,需返回标准JSON格式,修改Get方法:

[HttpGet]
public IActionResult Get()
{
    var myData = new
    {
        Host = @"sftp.myhost.gr",
        UserName = "my_username",
        Password = "my_password",
        SourceDir = "/export/zip/mypath/",
        FileName = 1
    };
    // 返回JSON格式响应
    return Ok(myData);
}

如果实际要返回bigCities数组,就改成return Ok(bigCities);,根据业务需求选择即可。

2. 修复前端jQuery代码

场景1:后端返回单个myData对象

$(document).ready(function () {
    $.ajax({
        url: `${siteRootUrl}api/order`,
        dataType: 'json', // 开启JSON类型指定,确保前端解析响应
        type: "GET",
        success: function (res) {
            // 直接遍历对象属性并追加到HTML
            $.each(res, function(key, element){
                $('#a').append(`<tr><td>${key}: ${element}</td></tr>`);
            });
        },
        error: function (xhr, status, error) {
            // 打印错误详情方便排查,不要只弹模糊提示
            console.error('请求错误:', status, error);
            alert('请求失败,请查看控制台日志');
        }
    });
});

场景2:后端返回bigCities数组

$(document).ready(function () {
    $.ajax({
        url: `${siteRootUrl}api/order`,
        dataType: 'json',
        type: "GET",
        success: function (res) {
            // 遍历数组元素追加到HTML
            res.forEach(function(city){
                $('#a').append(`<tr><td>${city}</td></tr>`);
            });
        },
        error: function (xhr, status, error) {
            console.error('请求错误:', status, error);
            alert('请求失败,请查看控制台日志');
        }
    });
});

额外排查建议

  • 打开浏览器开发者工具(F12),切换到Network标签,查看请求的响应内容,确认后端返回的是否为标准JSON。
  • 查看Console标签,检查是否有JavaScript报错,这能快速定位前端逻辑问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:30:53