我正在使用節點和條紋來處理付款。我有一個/charge
路由設置,它從前端獲取一堆參數並呈現收據。我該如何防止瀏覽器重新加載POST路徑?
我想知道如何將POST
路由重定向到GET
路由,以防止有人在加載POST
路由後嘗試重新加載頁面時發生錯誤?
這些是我的路線到目前爲止。我有一個付款按鈕/
,它發送POST請求到/charge
。
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
router.post('/charge', function(req, res, next) {
var stripeToken = req.body.stripeToken;
var stripeEmail = req.body.stripeEmail;
var amount = 3999;
var description = "Product description";
var charge = stripe.charges.create({
amount: amount, // amount in cents, again
currency: "gbp",
source: stripeToken,
receipt_email: stripeEmail,
description: description
}, function(err, charge) {
if (err && err.type === 'StripeCardError') {
// The card has been declined
} else {
res.render('charge', {
title: 'Charge',
descrption: charge.description,
total: (charge.amount/100) + charge.currency.toUpperCase(),
trans_id: charge.id
});
}
});
});
像我現在有它的/charge
路線錯誤實在太差了,並且打破了應用程序如果頁面提交後重新加載。這是由於該令牌僅在第一次嘗試時纔有效,所以在此之後的所有嘗試中,對象都是空的。
解決此問題的最佳方法是什麼?重定向到新頁面?我如何獲得charge
值以堅持到這個新頁面?我可以重定向到刷新網頁嗎?
任何意見,將不勝感激!
你有沒有考慮通過AJAX發送POST? – csum