Я работаю над веб-расширением в Firefox для внутреннего использования на работе. Цель расширения - вставить соответствующую информацию из нашего экземпляра ServiceNow на страницу хоста / сервиса Nagios.
В настоящее время я пытаюсь вставить состояние заявок на вкладку истории Nagios. Мой скрипт выглядит так:
var table = document.getElementById('id_historytab_table');
var table = table.getElementsByTagName('tbody');
var table = table[1];
var len = table.children.length
const url = "https://[domain].service-now.com/api/now/table/task?sysparm_limit=1&number="
for (i = 1; i <= len; i++) {
var col = table.rows[i].cells[2];
if (col.textContent.startsWith("TKT")) {
var tkt = col.textContent;
//console.log(tkt);
//console.log(url+tkt);
var invocation = new XMLHttpRequest();
invocation.open("get",url+tkt, true);
invocation.withCredentials = true;
invocation.onreadystatechange = function() {
if(this.readyState == this.DONE) {
//console.log('recieved');
console.log(invocation.responseText);
//console.log(JSON.parse(invocation.responseText).result[0].state);
}
};
invocation.send();
};
};
Это успешно получает номер заявки из каждой строки вкладки истории и делает запрос GET. Я вижу запросы в моем журнале ServiceNow REST, и он выглядит там хорошо. Однако ответ так и не был получен.
Если я скопирую и вставлю вышеизложенное из моего content-script.js
и вставлю его прямо в консоль, я смогу перебирать строки, получать номера билетов и успешно получать ответы от ServiceNow. Так что это работает, но не по какой-то причине в WebExtension. Хотя я уже почти закончил свои знания о расширениях и javascript и не уверен, что еще делать.