Попытка сделать запрос на мыло из cashTill на моей работе в приложение. Поскольку Soap недружелюбен по отношению к Android, и я уже использую Firebase, я решил сделать запрос мыла в функциях Firebase. Я могу получить запрос и вернуть страницу, но я хочу иметь возможность собирать данные тут же. Моя проблема в том, что когда я пытаюсь получить 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);
}
}
});
Ошибка:
Ошибка типа: xmlDoc.getElementsByTagName не является функцией
в GetArticles (/user_code/index.js:65:33)