在此Chrome扩展程序中,为什么重复发送请求?

时间:2018-09-02 23:20:32

标签: javascript google-chrome google-chrome-extension

我的目标是记录请求,我正在尝试使用历史记录。 但是,我看到的是,一旦我转到页面,显然代码就会被一遍又一遍地调用:

    chrome.webRequest.onBeforeRequest.addListener(
       function(info) {
         var xhr = new XMLHttpRequest();
         chrome.history.search({text: '', maxResults: 1}, function(data) {
           data.forEach(function(page) {

            console.log(page.url+"history");

         xhr.open("PUT", 
        'http://localhost:8080/Server/create/foo', true);
        xhr.setRequestHeader('Content-type','text/plain; charset=utf-8');
        xhr.send(page.url);
   });
});

看起来像是被监听的事件重复发生,即使我停留在同一页面上也是如此。我不知道该网站是否发出请求,这些请求在历史记录搜索中显示为同一页面。

我想要的是每次用户进入新页面时,该页面都会被记录一次。就像用户访问reddit.com一样,单个请求将发送到服务器。如果用户随后访问yahoo.com,则将生成另一个单个请求。我之所以使用chrome的历史记录功能,是因为去reddit或yahoo之类的网站确实导致了许多请求,因为yahoo本身正在发出多个请求。

总而言之,有没有一种方法可以只记录用户导航到的网址,而忽略网站本身可能发出的请求?

0 个答案:

没有答案