使用 post 方法通过获取 returns 空对象发送数据
Sending data using post method via fetch returns an empty object
这是我 addEventListener
的 click
事件
的函数
export const showTicket = async function() {
try {
// GETTING USER DATA
const response = await fetch("/api/v1/users/me");
const data = await response.json();
//
const user = data.data.data;
// CREATING VISITOR
const visitor = {
VisitorNumber: user.visitorId,
FirstName: user.firstName,
LastName: user.lastName,
Company: user.company,
JobTitle: user.profile,
Email: user.email,
Mobile: user.mobile,
Nationality: user.nationality,
Country: user.country,
Category: user.type,
};
// SENDING VISITOR OBJECT TO ANOTHER API
const url = "/api/v1/eticket/visitor";
const options = {
method: "POST",
header: {
"Content-Type": "application/json",
},
body: JSON.stringify(visitor),
};
if (!user.eventId) {
const response1 = await fetch(url, options);
const data1 = await response1.json();
}
const ticketMarkup = `<div class="ticket">
<div class="ticket__logo"> <img src="/images/vp-expo-logo.png"> </div>
<div class="ticket__data">
<p>Your ticket is ready to be printed</p>
</div>
<button class="btn ticket__print-ticket" data-visitor-id=${user.visitorId}> Print Ticket </button>
<button class="btn update-data"> Update Data </button>
</div>
`;
showPopup(ticketMarkup);
} catch (err) {
console.log(err);
}
};
所以首先我从 api '/api/v1/users/me' 获取用户详细信息,它工作正常,我能够检索数据并创建一个变量 'Visitor'使用用户属性。
然后我必须将访问者变量作为正文发送给另一个 api ('/api/v1/eticket/visitor') 以便它可以接收正文作为 req.body
但是在“/api/v1/eticket/visitor”上,req.body 显示为空对象。
这里是本次接收控制器的开场部分api('/api/v1/eticket/visitor')
exports.addOneVisitor = async function(req, res, next) {
try {
const visitor = req.body;
console.log(req.body);
请指教我做错了什么?
有史以来最愚蠢的错误!!..但我一直在重复这个错误。我正在回答我自己的问题,作为对我的提醒(以及对重复输入相同错别字的任何人的提醒!)..
当您为获取请求编写选项部分时,它是 headers
而不是 header
。
希望这可以帮助人们不要因为失踪而失去 2 天的生命 's'
这是我 addEventListener
的 click
事件
export const showTicket = async function() {
try {
// GETTING USER DATA
const response = await fetch("/api/v1/users/me");
const data = await response.json();
//
const user = data.data.data;
// CREATING VISITOR
const visitor = {
VisitorNumber: user.visitorId,
FirstName: user.firstName,
LastName: user.lastName,
Company: user.company,
JobTitle: user.profile,
Email: user.email,
Mobile: user.mobile,
Nationality: user.nationality,
Country: user.country,
Category: user.type,
};
// SENDING VISITOR OBJECT TO ANOTHER API
const url = "/api/v1/eticket/visitor";
const options = {
method: "POST",
header: {
"Content-Type": "application/json",
},
body: JSON.stringify(visitor),
};
if (!user.eventId) {
const response1 = await fetch(url, options);
const data1 = await response1.json();
}
const ticketMarkup = `<div class="ticket">
<div class="ticket__logo"> <img src="/images/vp-expo-logo.png"> </div>
<div class="ticket__data">
<p>Your ticket is ready to be printed</p>
</div>
<button class="btn ticket__print-ticket" data-visitor-id=${user.visitorId}> Print Ticket </button>
<button class="btn update-data"> Update Data </button>
</div>
`;
showPopup(ticketMarkup);
} catch (err) {
console.log(err);
}
};
所以首先我从 api '/api/v1/users/me' 获取用户详细信息,它工作正常,我能够检索数据并创建一个变量 'Visitor'使用用户属性。
然后我必须将访问者变量作为正文发送给另一个 api ('/api/v1/eticket/visitor') 以便它可以接收正文作为 req.body
但是在“/api/v1/eticket/visitor”上,req.body 显示为空对象。
这里是本次接收控制器的开场部分api('/api/v1/eticket/visitor')
exports.addOneVisitor = async function(req, res, next) {
try {
const visitor = req.body;
console.log(req.body);
请指教我做错了什么?
有史以来最愚蠢的错误!!..但我一直在重复这个错误。我正在回答我自己的问题,作为对我的提醒(以及对重复输入相同错别字的任何人的提醒!)..
当您为获取请求编写选项部分时,它是 headers
而不是 header
。
希望这可以帮助人们不要因为失踪而失去 2 天的生命 's'