我正在使用firebase数据库,我想要一个云函数(触发器)来与我拥有的REST node.js REST服务进行通信。
触发器已经创建,但现在我希望云函数调用托管机器中的外部webservice。
我进口了jQuery。但是它说$.post不是一个函数。我认为这是因为苗条的版本是以某种方式安装的(不是这样的)。然后,我尝试在JavaScript中使用XMLHttpRequest直接完成它,该函数还说
ReferenceError: XMLHttpRequest未在/user_code/index.js:91:19处process._tickDomainCallback处定义(内部/process/next_tick.js:129:7)
您是否知道如何在防火墙云功能上发出POST请求?
发布于 2017-05-11 17:43:21
你必须在一个付费的消防计划(可能的火焰),以便张贴到一个外部网站。https://stackoverflow.com/a/42775841/6480950
可以使用npm模块的请求和请求承诺。
发布于 2017-05-11 17:30:03
Firebase函数是一个Node.js环境。但是jQuery是一个客户端javascript库。有一些服务器端的jQuery构建(Cheerio,nodeQuery),参见:Can I use jQuery with Node.js?
但我会的。。。
尝试使用节点模块xmlhttprequest。让我们按照客户端JavaScript中的方式编写原始请求。您需要在您的package.json文件(即:
"dependencies": {
"xmlhttprequest": "^1.8.0"
}然后在你的职能中:
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var request = new XMLHttpRequest();
request.addEventListener('load', doSomethingWithDataFromResponse);
request.open("GET","http://urlToMyServer");
request.send();
function doSomethingWithDataFromResponse() {
var data = this.responseText;
//etc.
}对于一篇类似于:
var request = new XMLHttpRequest();
var params = "word=foo"; //or stringify some JSON
request.addEventListener('load', doSomethingWithDataFromResponse);
request.open("POST","http://urlToMyServer");
request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); // or application/json etc.
request.send(params);这就是最近我如何处理从节点服务器到其他第三方服务器的请求。我还没有机会尝试使用Firebase,但是所有的文档似乎都表明它应该能工作。
https://stackoverflow.com/questions/43917926
复制相似问题