Как передать данные из ванильного JS файла в представление django (POST запрос)? Я определяю, совпадает ли адрес Metamask с адресом пользователя.

Итак, в моем представлении входа я хочу проверить, соответствует ли адрес, возвращенный из metamask, адресу кошелька пользователя, пытающегося войти в систему.

Вот код javascript, который я использую для этого:

async function loginWithMetaMask() {
  const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' })
        .catch((e) => {
          console.error(e.message);
          return;
        })
      if (!accounts) { return; }

    window.userWalletAddress = accounts[0];
    console.log(accounts[0]);

    let data = {address : window.userWalletAddress};

      const request = new XMLHttpRequest();
      request.open('POST', 'accounts/login', true);
      request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');

      request.onload = () => {
        const data = JSON.parse(request.responseText);
        console.log(data);
      }

      request.send(data);
      return false;
}

как вы видите :

let data = {address : window.userWalletAddress};
    
          const request = new XMLHttpRequest();
          request.open('POST', 'accounts/login', true);
          request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    
          request.onload = () => {
            const data = JSON.parse(request.responseText);
            console.log(data);
          }
    
          request.send(data);

этот фрагмент кода из loginWithMetaMask() функция отвечает за отправку объекта JSON при POST-запросе к url 'accounts/login'

Это мое представление django:

def post(self, request):#, address):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)

        if request.is_ajax():
            print('connected')
            data = {'address': request.POST.get('address', None)}
            address = data[address]
            print(address)
        else:
            return render(request, self.template, {
                'message': "MetaMask not onnected"
            })
        #go ahead and authenticate the user

но request.is_ajax() возвращает false и я не получаю данных в моем представлении.

Может ли кто-нибудь показать мне правильный способ сделать это?

Спасибо

Вернуться на верх