在我的工作中尝试从CashTill发出肥皂请求到应用程序。因为Soap对Android不友好,并且我已经使用Firebase,所以我决定在firebase函数中执行soap请求。我可以收到请求,然后返回页面,但是我希望能够在那里收集数据。我的问题是,当我尝试使用getElementsByTagName时,它指出该功能不存在。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var bodyParser = require('body-parser');
require('body-parser-xml')(bodyParser);
exports.GetArticlesInfo = functions.https.onRequest((request,
response) => {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "0000.0000.0000.0000/soap/ITPAPIPOS");
xmlhttp.setRequestHeader("Content-type","text/xml");
// build SOAP request
var sr =
'<soapenv:Envelope ' ..... sensitve information ......
'</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState === 4) {
if (xmlhttp.status === 200) {
GetArticles(this);
}
}
}
// Send the POST request
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(sr);
// send request
// ...
function GetArticles(xml){
var xmlDoc = xml.responseXML;
response.send("jhere");
var data = xmlDoc.getElementsByTagName("item");
for(var i = 0; i < data.length;i++){
var x = data;
response.send(x[i].getElementsByTagName("ArticleName")[0].childNodes[0].nodeValue);
}
}
});
错误: TypeError:xmlDoc.getElementsByTagName不是一个函数 在GetArticles(/user_code/index.js:65:33)