Как передать данные из ванильного 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 и я не получаю данных в моем представлении.
Может ли кто-нибудь показать мне правильный способ сделать это?
Спасибо