Остановка бесконечного цикла JavaScript-кода слушателя webRequest, который вызывает другой HTTP-запрос к веб-сайту - PullRequest
0 голосов
/ 08 июля 2019

При отладке аддона Firefox я получаю бесконечный цикл вызова запроса из другого webRequest.Поскольку в функции getIP () я вызываю запрос к другому сайту, при посещении любого сайта код вызывает функцию getIP (), которая вызывает отправку другого запроса, что вызывает бесконечный цикл getIP ().

Я пытался найти способ исключить сайт "https://api.ipify.org? Format = json " из "all_urls" в слушателе webRequest, но это не сработало.

Фоновый сценарий аддона Firefox: (Manifest.json не важен)


var IP_ADDRESS = ""; //set a variable to extract IP to
function getIP() {

$.getJSON('https://api.ipify.org?format=json', function(data){
    console.info("IP RETRIEVED: " + data.ip);
    IP_ADDRESS = data.ip;
    return data.ip; //kind of redundant
}); //quick request to get ip

//this should return your IP address and extract it into the IP_ADDRESS variable
console.info("Completed");
}

browser.webRequest.onBeforeSendHeaders.addListener(
  getIP,
  {urls: ["<all_urls>"]});

Функция getIP должна запускаться каждый раз, когда я посещаю веб-сайт, чтобы я мог получить реальный IP-адрес пользователя перед его посещением.сайт.(Мне нужно, чтобы прослушиватель всегда работал на всех URL, но я не нашел способа остановить бесконечный цикл.) Нет сообщений об ошибках, но консоль затопляется функциями console.info.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...