В моем веб-приложении мне нужно получить токен csrf для отправки некоторых данных через xmlhttprequest, но я получаю сообщение об ошибке на сервере как « django \ middleware \ clickjacking.py», строка 26, в process_response, если ответ.get ('X-Frame-Options') не является None: AttributeError: у объекта 'str' нет атрибута 'get'". Это мой код
// views.py
from django.shortcuts import render
from django.shortcuts import render_to_response
from django.template.context_processors import csrf
def interfacePage(request):
return render(request, "interfacePage.html", {})
def interfacePageSubmit(request):
if request.method == 'POST':
datarecvd = request.POST['data']
return render(request, "interfacePageSubmit.html", {})
else:
print("in def interfacePageSubmit")
csrf1 = str(csrf(request)['csrf_token'])
return csrf1
// interfacePage.html
function sumbit() {
var xhr = new XMLHttpRequest();
var url = {% url 'interfacePageSubmit' %};
xhr.open("GET", url, false);
xhr.withCredentials = false;
xhr.setRequestHeader("x-csrf-token", "fetch");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
var data = null;
xhr.send(data);
console.log(xhr.readyState);
console.log(xhr.status);
if (xhr.readyState === 4 && xhr.status === 200) {
var csrfToken = xhr.getResponseHeader('x-csrf-token');
url = {% url 'interfacePageSubmit' %};
xhr.open("POST", url, true);
xhr.withCredentials = false;
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.setRequestHeader('x-csrf-token', csrfToken);
}
**/ further code goes here
Пожалуйста, отметьте мое " interfacePage.html содержит только кнопку без тега формы