javascript - 从反应到表达的错误 404 POST 表单数据
问题描述
我正在尝试将表单(反应)中的数据发布到我的后端(nodejs/express),但我收到 404 错误。这里有很多代码,所以我试图发布重要的内容。
提交功能
//submit data
const submitCard = (ev) => {
console.log(ev);
ev.preventDefault();
try {
api.post('/api/stripe/', payment).then((result) => {
window.location.href = process.env.REACT_APP_REDIRECT_URI;
});
} catch (e) {
console.log(e);
}
};
正在提交的数据
const paymentUpdated = () => {
setPayment({
name: name,
firstName: firstName,
lastName: lastName,
cardNumber: number,
expDate: expiry,
cvc: cvc,
zip: zip,
plan: plan,
});
};
表单标签+按钮
<form className="creditForm" onSubmit={submitCard}>
<Button className="save-button" type="submit">
提交到的路由(仍然需要将数据发送到条带)
app.post('/api/stripe', requireLogin, async (req, res) => {
const plan = await stripe.plans.retrieve('price_1HfAZGGFN31Q4RRjSrFXnGgD');
console.log(req);
if (req.user.stripeId) {
const customer = await stripe.customers.retrieve(req.user.stripeId);
} else {
const customer = await stripe.customers.create({
email: req.user.email,
description: 'Subscribing to Personal Plan Monthly Subscription',
});
req.user.stripeId = customer.id;
const user = await req.user.save();
}
req.user.plan = 2;
const user = await req.user.save();
const subscription = await stripe.subscriptions.create({
customer: req.user.stripeId,
items: [{ price: 'price_1HfAZGGFN31Q4RRjSrFXnGgD' }],
});
解决方案
您发帖的 URL 与express中配置的 URL 似乎不一致。您发帖到/api/stripe/
,但设置为收听快递/api/stripe
,请注意快递中缺少尾随 /
。所以它没有找到您期望的端点。
我倾向于使用命令来测试我的APIcurl
,例如
curl -X POST "http://localhost:3500/api/stripe/" -H "content-type: application/json" -d '{"key1": "value1", "key2": "value 2"}'
一旦我证明 API 有效,我才担心从应用程序调用它。这将使您更容易识别代码中的问题所在。
推荐阅读
- javascript - 用另一个 Jquery 函数触发一个 Jquery 函数
- c# - dotnet 测试例程失败
- asp.net - 在 .net 核心中,如何在 Web 根目录下下载具有特殊扩展名的静态文件?
- azure-devops - 连接到 Azure DevOps 服务时,如何在 Visual Studio 而不是 Web 浏览器中打开 Bug/PBI?
- python-3.x - 请解释以下代码的工作原理和下面提到的一些问题
- python - QTreeView QAbstractItemModel 父级在删除项目后崩溃,有时崩溃
- parsing - 在确定标记之前让词法分析器考虑解析器?
- swiftui - SwiftUI:如何在不同的视图中显示 UserDefault 数据
- javascript - 从 JSON 响应创建嵌套评论数组
- r - R summarise 不会从连接结果中删除重复项