我想从我的Firebase云函数中调用soap服务网址
但是,从我的云函数调用它会给我以下错误。
XMLHttpRequest错误:
"Message": "Error: connect ECONNREFUSED 127.0.0.1:80\n at Object.exports._errnoException (util.js:1020:11)\n at exports._exceptionWithHostPort (util.js:1043:20)\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1105:14)"
代码
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xmlhttp = new XMLHttpRequest();
//replace second argument with the path to your Secret Server webservices
xmlhttp.open('POST', 'xxxxx/SiloFunctions.asmx');
//create the SOAP request
var sr =
'<soapenv:Envelope ' +
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
'xmlns:xsd="http://www.w3.org/2001/XMLSchema"' +
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">' +
'<soap:Body>' +
'<Request xmlns="http://tempuri.org/">' +
'<Password>xxxx</Password>' +
'<Latitude>123</Latitude>' +
'<Longitude>123</Longitude>' +
'<ClientName>123</ClientName>' +
'<ClientSurname>123</ClientSurname>' +
'<MSISDN>123123</MSISDN>' +
'</Request>' +
'</soap:Body>' +
'</soapenv:Envelope>';
//specify request headers
xmlhttp.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');
//FOR TESTING: display results in an alert box once the response is received
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
res.status(200).send(
{
"Message": xmlhttp.responseText,
})
}
};
//send the SOAP request
xmlhttp.send(sr);
为什么?
答案 0 :(得分:1)
您应该使用完整的URL,而不是部分的URL。它可能以https://
开头。由于您未使用该库,因此您所使用的HTTP库假定使用本地主机(127.0.0.1),这显然行不通。