我想发送 3 个对象到我的服务器。 2 个付款响应对象和一个对象包含我的表单输入字段值。但是,如果我像下面所示将它一起发送,则 formData 会被视为服务器端的字符串,而我无法访问。如果我只发送 formData 就没有问题。如果我只发送其他 2 个对象,则没有问题。我如何在服务器端将其作为 json 对象获取?
const formData = $('#checkoutForm').serialize();
//razorpay 响应后调用此函数。付款和订单是razorpay的回复
function verifyPayment(payment,order){
$.ajax({
url: '/verify-payment',
type: 'POST',
data:{
payment,
order,
formData
},
success: function(response){
console.log('payment status',response)
},
error: function(error){
console.log(error)
}
})
}
服务器中 req.body 的控制台:
form data from verify patment=== {
payment: {
razorpay_payment_id: 'pay_NQKts6UWsReLkf',
razorpay_order_id: 'order_NQKtkMV1mv3AiT',
razorpay_signature: 'beb2eac3df927dd1901da8f79140be832bb6f662135ed04a3f23ded32ab80e9f'
},
order: {
id: 'order_NQKtkMV1mv3AiT',
entity: 'order',
amount: '129900',
amount_paid: '0',
amount_due: '129900',
currency: 'INR',
receipt: '8774a2511705637831834',
offer_id: '',
status: 'created',
attempts: '0',
created_at: '1705637832'
},
formData: 'fullName=&phoneNUmber=&email=&house=&landMark=&city=&district=&state=&pincode=&selectedAddress=Ahammed+Zulaikh%0D%0AManthadathil(H)%0D%0AChalilpara%0D%0AMALAPPURAM%0D%0A676508%0D%0AMalappuram%0D%0AKERALA%0D%0A919605633278&deliveryInstruction=&totalPrice=1299&paymentMethod=Online+Payment&productId=6 593d05163f67fb7dd7b3182&productPrice=1299&orderProductQty=1'
}
console.log(typeOf req.body.formData) 给出一个字符串。
你可以用这个
const formData = JSON.stringify($('#checkoutForm').serializeArray());
函数 verifyPayment(付款,订单){ $.ajax({ url: '/验证付款', 类型:'发布', contentType: 'application/json', // 将内容类型设置为 JSON 数据:JSON.stringify({ 支付, 命令, 表单数据 }), 成功:函数(响应){ console.log('支付状态', 响应); }, 错误:函数(错误){ 控制台.log(错误); } }); }