我正在使用Google Cloud Function,并希望处理邮寄请求所提供的数据。
在网站上:
const Http = new XMLHttpRequest();
const url='https://us-central1-finitest-4aafb.cloudfunctions.net/create-user1';
Http.open("POST", url);
Http.send("name=Negan&password=Lucille");
Http.onreadystatechange = (e) => {
console.log(Http.responseText)
}
在服务器上:
exports.helloWorld = (req, res) => {
res.set('Access-Control-Allow-Origin', "*");
res.set('Access-Control-Allow-Methods', 'GET, POST');
let message = 'User created ' + req.body.user;
res.status(200).send(message);
};
如何在服务器上使用“ name = Negan&password = Lucille”数据?
由于您使用的POST请求XMLHttpRequest()
,因此需要通过请求的正文获取参数,如下所示:
exports.helloWorld = functions.https.onRequest((req, res) => {
res.set('Access-Control-Allow-Origin', "*");
res.set('Access-Control-Allow-Methods', 'GET, POST');
console.log(req.body);
console.log(req.body.name);
console.log(req.body.password);
let message = 'User created ' + req.body.name;
res.status(200).send(message);
});
在doc中有更多详细信息。
您还需要在前端将正确的内容类型(即application/x-www-form-urlencoded
)与请求一起发送,如下所示:
const Http = new XMLHttpRequest();
const url='https://us-central1-finitest-4aafb.cloudfunctions.net/helloWorld';
Http.open("POST", url);
// send the proper header information along with the request
Http.setRequestHeader(
'Content-type',
'application/x-www-form-urlencoded'
);
Http.send("name=Negan&password=Lucille");
Http.onreadystatechange = (e) => {
console.log(Http.responseText)
}
如Ashish Kumar所述,如果要获取它们作为查询字符串参数,则需要send()
使用POST将它们添加到URL中,而不是通过添加到URL中。
const url='https://us-central1-finitest-4aafb.cloudfunctions.net/create-user1';
Http.open("POST", url + "?name=Negan&password=Lucille"); // Note the ?
Http.send();
在这种情况下,您可以使用req.query.name
。
搜索结果中的更多详细信息:https : //www.google.com/search?client=firefox-bd&q=XMLHttpRequest.send%28%29+POST+querystring
最后,请注意,https://us-central1-finitest-4aafb.cloudfunctions.net/create-user1
您并不是在呼叫您的helloWorld
Cloud Function,而是呼叫create-user1
Cloud Function。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句