如何解决在node.js中使用提取时出现403禁止的错误
我正在尝试从index.js文件中的'/ razorpay'路由获取响应,并在displayRazorpay()中使用它 。为此,我正在使用访存,但它显示了禁止的403错误。有人可以帮忙吗?我已经附加了“ / razorpay”路由,并在下面添加了displayRazorpay()函数。我是node.js的新手,所以非常感谢您的帮助!
router.post('/razorpay',async function(req,res,next){
if(!req.session.cart){
return res.redirect('/shopping-cart');
}
var cart = new Cart(req.session.cart);
const payment_capture = 1;
const amount = cart.totalPrice;
const currency = 'INR';
const options = {
amount: amount * 100,currency,receipt: shortid.generate(),payment_capture,}
try {
const response = await razorpay.orders.create(options);
console.log(response);
res.json({
id: response.id,currency: response.currency,amount: response.amount
});
} catch (error) {
console.log(error);
}
});
async function displayRazorpay() {
const data = await fetch('/razorpay',{method:'POST'}).then((t) =>
t.json()
);
console.log(data);
const options = {
key: 'rzp_test_2eJE3rP3gEWqze',amount: 400,order_id: data.id,name: 'Donation',description: 'Thank you for nothing. Please give us some money',image: '/images/modiLogo3.png',handler: function (response) {
alert(response.razorpay_payment_id);
alert(response.razorpay_order_id);
alert(response.razorpay_signature);
},prefill: {
email: 'sdfdsjfh2@ndsfdf.com',phone_number: '9899999999'
}
}
const paymentObject = new window.Razorpay(options);
paymentObject.open();
}
解决方法
这是CORS的问题。确保在服务器端启用了cors。
由于您使用的是Express,因此这里是示例代码
首先安装cors: npm install cors
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products/:id',function (req,res,next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80,function () {
console.log('CORS-enabled web server listening on port 80')
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。