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

求助:AMP-list无法渲染关联JSON文件返回的数据

排查AMP-List空白不渲染的问题

我之前也碰到过类似的amp-list渲染空白的情况,结合你描述的背景(有合规JSON、CORS URL、正确AMP头、无控制台错误),咱们一步步排查可能的问题:

  • 检查模板与JSON的绑定匹配度
    一定要确保Mustache模板里的变量名和JSON响应里的键完全一致(大小写敏感!)。比如如果你的JSON返回{"currency": "USD"},模板里就得写{{currency}},不能写成{{Currency}}或者{{curr}}。
    另外确认模板的写法是否正确,必须用<template type="amp-mustache">,且要放在amp-list内部或者通过template属性引用外部模板ID:

    <amp-list src="你的CORS接口地址" layout="fixed-height" height="40">
      <template type="amp-mustache">
        <span>当前币种:{{currency}}</span>
      </template>
    </amp-list>
    
  • 验证JSON响应的结构规范
    AMP-list要求JSON响应必须是包含items数组的对象(除非你通过items属性指定了数据路径)。比如正确的结构应该是:

    {
      "items": [
        {"currency": "USD"},
        {"currency": "EUR"}
      ]
    }
    

    如果你的JSON数据不是嵌套在items里,比如直接是数组[{"currency":"USD"}],那得给amp-list加上items="."属性,告诉它直接用根数组作为数据源。

  • 再确认CORS配置的细节
    除了Access-Control-Allow-Origin,AMP还要求响应头包含AMP-Access-Control-Allow-Source-Origin,值必须和你的AMP页面的源域名完全一致(比如https://your-amp-domain.com)。同时要确保JSON响应的Content-Type是application/json,不能是text/plain之类的。

  • 检查amp-list的布局设置
    如果用了layout="fixed-height",要确保height值足够容纳渲染后的内容,不然内容会被隐藏导致看起来是空白。可以临时把height设大一点(比如height="100")测试下。或者换成layout="responsive"并设置合理的宽高比例,比如width="300" height="50"。

  • 直接测试JSON接口
    在浏览器地址栏直接打开你的JSON URL,确认返回的内容是纯净的JSON,没有多余的HTML注释、空格或者语法错误。另外可以用AMP官方的Validator工具(在浏览器控制台输入amp.validate())再扫一遍页面,有时候控制台没弹出错误,但Validator能发现一些细节问题。

如果做完这些排查还是没解决问题,可以把你的HTML模板代码、JSON响应内容贴出来,这样能更精准地定位问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:09:36