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

前端调用AWS Lambda Function URL获取DynamoDB数据失败求助

问题排查与解决方案

按以下顺序排查修复,大概率解决你的问题:

1. 修正Fetch请求的URL格式

你的前端fetch URL未添加https://前缀,浏览器会将其识别为当前页面的相对路径发起请求,必然无法找到目标资源。修改代码如下:

fetch('https://xyz.lambda-url.us-east-1.on.aws/') 

2. 配置Lambda Function URL的CORS规则

浏览器的同源策略会拦截跨域请求,而Lambda Function URL默认未开启CORS,直接前端调用会被浏览器拦截。操作步骤:

  • 登录AWS控制台,定位到你的Lambda函数
  • 进入「配置」→「函数URL」→「编辑」
  • 在「跨域资源共享(CORS)」区域,勾选「启用CORS」
  • 测试阶段可将「允许的来源」设为*,上线后替换为你的作品集域名;「允许的方法」选择GET,「允许的头」设为*,最后保存配置

3. 匹配返回数据的键名大小写

你的Lambda返回的键是Count(大写C),但前端代码中取值用的是data.count(小写c),即使请求成功也无法获取到数据。二选一修改即可:

  • 改Lambda返回代码:
return {'count': new_count}  # 将Count改为小写count
  • 或改前端取值代码:
document.getElementById('visitor_counter').innerText = data.Count

4. 增加错误处理便于调试

给fetch请求添加catch块,能直接在浏览器控制台看到具体错误信息,方便后续排查:

fetch('https://xyz.lambda-url.us-east-1.on.aws/') 
.then(response => {
  if (!response.ok) {
    throw new Error(`HTTP错误!状态码: ${response.status}`);
  }
  return response.json();
})
.then((data) => {
  document.getElementById('visitor_counter').innerText = data.count
})
.catch(error => {
  console.error('请求失败:', error);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 03:46:22