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

如何调试Cloudflare Pages上出现500错误的SvelteKit应用?

问题:SvelteKit部署Cloudflare Pages后出现500错误,JSON解析失败

背景信息

  • 原环境:本地及服务器通过PM2+Nginx反向代理,用npm run dev运行SvelteKit应用,运行正常但非生产模式,计划迁移到Cloudflare Pages无服务器架构
  • 矛盾点:本地执行npm run build+npm run preview完全正常,Cloudflare Pages构建成功,但访问时直接返回500错误
  • 错误日志:

"SyntaxError: Unexpected token 'R', "ReferenceE"... is not valid JSON\n at JSON.parse (<anonymous>)\n at Proxy.<anonymous> (bundledWorker-0.9684693903267865.mjs:18147:25)\n at async load (bundledWorker-0.9684693903267865.mjs:778:27)\n at async load_data (bundledWorker-0.9684693903267865.mjs:18065:18)\n at async bundledWorker-0.9684693903267865.mjs:19314:18"

  • 应用依赖Strapi GraphQL接口获取数据,怀疑此处存在问题,但无法直接访问Cloudflare上的打包文件进行调试

已尝试的排查步骤

  • 本地切换到Node 16构建(与Cloudflare Pages运行环境版本一致)
  • 硬编码环境变量(验证过变量值有效)
  • 本地构建后预览,应用功能完全正常

调试过程与解决方案

  1. 本地模拟Cloudflare环境调试:执行wrangler dev .svelte-kit/cloudflare/_worker.js,复现了线上的500错误
  2. 定位问题:graphql-request包默认使用XMLHttpRequest发起请求,但Cloudflare Pages运行环境不支持XMLHttpRequest API
  3. 修复方法:初始化GraphQLClient时显式传入fetch参数,示例代码如下:
import { GraphQLClient } from 'graphql-request';

const strapiGraphQLEndpoint = '你的Strapi GraphQL接口地址';
const client = new GraphQLClient(strapiGraphQLEndpoint, {
  fetch: fetch // 强制使用Cloudflare支持的fetch API
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 16:55:47