通过Ajax向Firebase云端功能发送数据
问题描述:
我试图通过后端发送数据或获取firebase云端功能但无法使其工作。通过Ajax向Firebase云端功能发送数据
这里是我的AJAX:
$.ajax({
url: 'https://us-ceXXX1-reXXXts-fXXa-pr.cloudfunctions.net/helloWorld',
dataType: "json",
method: 'GET',
crossDomain: true,
body: {
mobileNo: "WzkyMzXXXXXXXXXXXc5ODBd"
},
success: function(data){
console.log('succes: '+data);
}
});
这里是云功能:
exports.helloWorld = functions.https.onRequest((request, response) => {
var responsez = response;
console.log("DATA IS:"+request.data); //prints undefined
console.log("BODY IS:"+JSON.stringify(request.body)); //prints BODY ID: {}
var mobNo = request.body.mobileNo;
var options = {
body: {mobileNo: mobNo, applicationVersion: "1.0"},
url: 'http://nxxxpi.fixxxa.wxb.pk/GetxxxxxxoUxr',
headers: {
'appKey':'jDxxxxxxxOr',
'appId':'2xxxxx9'
},
json: true
}
cors(request, response,() => {requestz.post(options, function (error, response, body) {
console.log('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
responsez.send(JSON.stringify(body));
})});
});
和IT控制台日志。
数据为:未定义
体:{}
编辑:这里是火力CONSOLE:
添加后:
console.log("BODY MOBILE:"+JSON.stringify(request.body.mobileNo));
console.log("ONLY MOBILE:"+JSON.stringify(request.mobileNo));
答
有几个问题在你的代码
变化的方法
POST
而不是GET
在你的Ajax调用作为要传递的数据请求主体-
使用
data
属性,而不是在ajax调用中调用body
。它现在应该工作。该数据将在request.body
的火力函数内部$.ajax({ url: 'https://us-ceXXX1-reXXXts-fXXa-pr.cloudfunctions.net/helloWorld', dataType: "json", method: 'POST', crossDomain: true, data: { mobileNo: "WzkyMzXXXXXXXXXXXc5ODBd" }, success: function(data){ console.log('succes: '+data); } });
+0
谢谢,工作: ) –
'方法:“GET”,'不是这应该是POST因为你是在请求体 – Niladri
使用数据传递'数据:{ mobileNo :“WzkyMzXXXXXXXXXXXc5ODBd” }'而不是使用'body' – Niladri
@Niladri,我已经尝试了你的两个建议。不工作:( –