Netlify Functions请求404错误求助(React项目)
Netlify Functions 404错误解决方法
- 移除请求URL的
.js后缀
Netlify Functions的调用路径不需要包含函数文件的后缀,你当前请求的路径带了.js,这是错误的。修改后的代码:
await fetch('./.netlify/functions/create-payment-intent', { method: 'post', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ message: "test"}), }).then((res) => { return res.json(); });
- 检查函数文件的存放路径
确保函数文件放在项目根目录的netlify/functions文件夹下(.netlify是构建自动生成的目录,不要手动往里面放文件)。正确的目录结构如下:
项目根目录 ├── netlify │ └── functions │ └── create-payment-intent.js ├── src │ └── ...(React源码文件) └── package.json
使用正确的本地开发命令
必须通过netlify dev命令启动本地服务,这个命令会同时启动React开发服务器和Netlify Functions服务,确保函数能被正常访问。不要单独用npm start启动React项目,这样Netlify Functions不会被加载。验证函数文件的导出格式
Netlify Functions要求通过exports.handler导出处理函数,确保你的create-payment-intent.js符合格式要求,示例代码:
exports.handler = async (event, context) => { try { const requestBody = JSON.parse(event.body); return { statusCode: 200, body: JSON.stringify({ response: `收到消息:${requestBody.message}` }) }; } catch (err) { return { statusCode: 500, body: JSON.stringify({ error: err.message }) }; } };
- 清理缓存并重启服务
如果以上步骤都没问题还是报错,尝试清理缓存:
- 停止当前运行的
netlify dev服务 - 删除项目根目录下的
.netlify文件夹 - 重新执行
netlify dev启动服务
内容的提问来源于stack exchange,提问作者Alb Rick Bi
相关产品推荐
相关产品推荐

