Для реализации AJAX запросов методом POST было принято решение отключить csrf защиту.
В файле views.py подключаю модуль:
from django.views.decorators.csrf import csrf_exempt
Описание метода, который получает тело запроса в виде строки, разбирает строку и получает два числа, вычисляет произведение чисел и возвращает ответ клиенту.
@csrf_exempt
def get_proizved(request):
s = str(request.body)
print("-------------------------------------------");
print("Body: " + s)
mass = []
mass = s.split("_")
a = mass[1]
b = mass[2]
print("A = " + a)
print("B = " + b)
ans = int(a) * int(b)
print("Ans = " + str(ans))
print("-------------------------------------------");
return HttpResponse(str(ans))
Код на языке JavaScript, реализующий отправку POST запроса на сервер.
function f() {
const a = document.getElementById("aaa").value;
const b = document.getElementById("bbb").value;
const body = "_" + a + "_" + b + "_";
const url = "/get_proizved/" + Math.random();
console.log("----------------------------------");
console.log("URL: " + url);
console.log("Body: " + body);
let r = new XMLHttpRequest();
r.open("POST", url, true);
r.setRequestHeader("Content-Type","text/plain;charset=UTF-8");
r.send(body);
r.onreadystatechange = function() {
if(r.readyState === 4 && r.status === 200) {
alert(r.responseText);
r = null;
}
}
}