【发布时间】:2021-03-03 16:17:22
【问题描述】:
这是我目前得到的:
from django.views.generic import View
from django.views.decorators.csrf import csrf_exempt
class ConfigurationView(View):
@csrf_exempt
def dispatch(self, *args, **kwargs):
return super(ConfigurationView, self).dispatch(*args, **kwargs)
def get(self, request):
...
但是,当我向该视图发出 ajax get 请求时,我无法访问 get 方法
function getCookie(name) {
let cookieValue = null;
if (document.cookie && document.cookie !== '') {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i].trim();
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
$.ajax({
url: "https://{{ domain }}/configure",
headers: {
'X-CSRFToken': getCookie('csrftoken')
},
crossDomain: true,
data: {
email: "{{ email }}",
},
dataType: "json"
})
我认为我正确地发送了csrftoken,我不应该真的需要csrf_exempt,但无论哪种方式,请求都会重定向到登录页面。
任何帮助将不胜感激。
【问题讨论】:
-
如果重定向到登录页面,则不是csrf的问题。检查是否有任何权限类或设置应用于视图
-
感谢您的快速回答!目前没有任何权限类。我尝试添加一个新的权限类(IsReadOnly),但它甚至没有进入权限类
-
我在徘徊是否需要通过某种允许这些端点的中间件
标签: javascript python django ajax rest