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

Gatsby develop模式无法调用Azure SQL Database REST API的问题

解决Gatsby开发模式下调用Azure SQL REST API的CORS问题

问题本质

部署到Azure Static Web App(SWA)正常,但本地gatsby develop模式报错,核心原因是Azure SQL的REST API未配置允许http://localhost:8000跨域访问——SWA与API属于可信域名范围所以能正常请求,而本地开发域名不在API的CORS白名单里。

添加no-cors模式无效的原因是:该模式下浏览器会返回无法读取内容的"不透明响应",根本拿不到你需要的数据,等于请求白发起。

可行解决方案

1. 配置API的CORS规则(永久解决)

登录Azure门户,找到对应Azure SQL REST API的服务资源,在CORS设置中添加http://localhost:8000到允许的源列表,同时确保开启GET方法的允许权限,并配置响应头包含Access-Control-Allow-Origin。

2. 用Gatsby代理转发请求(本地开发推荐)

在项目根目录的gatsby-config.js中添加代理配置:

module.exports = {
  developMiddleware: app => {
    app.use('/data-api', require('http-proxy-middleware')({
      target: 'https://example.com',
      changeOrigin: true,
    }));
  },
};

之后把你的请求修改为:

fetch('/data-api/rest/blogs')

本地开发时,Gatsby会自动将请求转发到目标API,绕过浏览器的CORS限制。

3. 临时禁用浏览器CORS(仅测试用)

安装浏览器CORS禁用插件(如CORS Unblock)临时绕过限制,但不推荐长期使用,生产环境必须依赖正规的CORS配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:00:03