XMLHttpRequest работает нормально в скрипте контента, но не в фоновом скрипте - расширение Chrome - PullRequest
0 голосов
/ 22 апреля 2019

Я переключаю запросы от сценария содержимого к фоновому сценарию, и код идентичен, но каким-то образом запрос XMLHttpRequest не позволяет мне войти в систему.

Моя цель - войти в систему пользователя и изменить его пароль - для этого требуется 2 запроса POST. Второй сбой.

Я, честно говоря, не знаю, что делать, и совершенно потерян.

Фоновый скрипт:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {

    // FIRST REQUEST
    var loginRequest = new XMLHttpRequest();
    loginRequest.open("POST", "https://.../login.php", true);
    loginRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    loginRequest.send("user credentials...");

    loginRequest.onload = function() {

      // SECOND REQUEST
      var changeRequest = new XMLHttpRequest();
      changeRequest.open("POST", "https://.../changePassword", true);
      changeRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      changeRequest.send("old pass... new pass...");
      changeRequest.onload = function() {

        // ISSUE: changeRequest.responseURL is back at the login page? WHY?
        if (changeRequest.responseText.includes("Password successfully changed!")) {
          sendResponse({passwordChanged: true});
        } else {
          sendResponse({passwordChanged: false});
        }
      }
    }

    return true;

});

ОБРАТИТЕ ВНИМАНИЕ: Этот код прекрасно работает в скрипте содержимого!

1 Ответ

0 голосов
/ 23 апреля 2019
loginRequest.anonymous = true;

решил проблему из-за ненужных куки при отправке из фонового скрипта.

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