Отменить загрузку файла в Javascript - PullRequest
0 голосов
/ 04 мая 2020

Я работаю над расширением chrome, в котором вы обнаруживаете загрузку, а затем отменяете ее, вся работа выполняется с помощью API webRequest, с использованием прослушивателей и поиска запроса о том, где находится загрузка, но я попытался отменить его с помощью return {cancel: true}, но это только делает бесконечным l oop отправку одного и того же запроса. Первое, что я делаю, это обрабатываю все заголовки.

chrome.webRequest.onBeforeSendHeaders.addListener(requestHandlerHeader,
{ urls: ["<all_urls>"] },

["requestHeaders", "blocking"]);

Затем я фильтрую эти заголовки, чтобы найти тот, который я ищу (в данном случае я ищу многочастные / связанные запросы, потому что он используется при загрузке). в Google Диске)

for (var i = 0; i < details.requestHeaders.length; ++i) {
//Filter POST
if (details.method == "POST") {

  //filter content-type
  if (details.requestHeaders[i].name.toLowerCase() === 'content-type') {

    /filter multipart
    if (details.requestHeaders[i].value.toLowerCase().includes("multipart/related")) {...}

Вы можете видеть, что это запрос с необработанными данными с этим:

 var enc = new TextDecoder("utf-8");
 var data = "";
 stream.requestBody.raw.forEach(e => {
     data += enc.decode(e.bytes);
 })

Как только у меня есть запрос, где я могу видеть необработанные данные, Я могу обработать событие, поэтому я отменяю запрос.

return {cancel: true};

Это не работает, он постоянно отправляет один и тот же запрос.

...