Javascript Django允许匿名ajax请求访问通用视图
到目前为止,我得到的是:Javascript Django允许匿名ajax请求访问通用视图,javascript,python,django,ajax,rest,Javascript,Python,Django,Ajax,Rest,到目前为止,我得到的是: 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(
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):
...
但是,当我向该视图发出ajaxget请求时,我无法访问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"
})
函数getCookie(名称){
让cookieValue=null;
if(document.cookie&&document.cookie!=''){
常量cookies=document.cookie.split(“;”);
for(设i=0;icsrftoken
,我不应该真正需要csrf\u豁免
,但无论哪种方式,请求都会重定向到登录页面
任何帮助都将不胜感激。问题并不是真正的
csrftoken
,而是我必须实现一个中间件来处理这些匿名端点:
from django.utils.deprecation import MiddlewareMixin
class AuthMiddleware(MiddlewareMixin):
anonymous_whitelist = [
'/<django_app>/configure',
]
def anonymous_allowed(self, path):
if path in self.anonymous_whitelist:
return True
return False
来自django.utils.Depraction导入MiddlewareMixin
类AuthMiddleware(MiddlewareMixin):
匿名_白名单=[
“//配置”,
]
允许的def匿名_(自身,路径):
如果self.anonymous\u白名单中的路径:
返回真值
返回错误
问题并不是真正的csrftoken
,而是我必须实现一个中间件来处理那些匿名端点:
from django.utils.deprecation import MiddlewareMixin
class AuthMiddleware(MiddlewareMixin):
anonymous_whitelist = [
'/<django_app>/configure',
]
def anonymous_allowed(self, path):
if path in self.anonymous_whitelist:
return True
return False
来自django.utils.Depraction导入MiddlewareMixin
类AuthMiddleware(MiddlewareMixin):
匿名_白名单=[
“//配置”,
]
允许的def匿名_(自身,路径):
如果self.anonymous\u白名单中的路径:
返回真值
返回错误
如果它被重定向到登录页面,那么这不是csrf的问题。检查是否有任何权限类或设置应用于视图谢谢您的快速回答!目前没有任何权限类。我尝试过添加一个新的权限类(IsReadOnly),但它甚至没有进入权限类。我想知道是否需要通过某种中间件来允许这些端点。如果它被重定向到登录页面,那么这就不是csrf的问题。检查是否有任何权限类或设置应用于视图谢谢您的快速回答!目前没有任何权限类。我已经尝试添加一个新的权限类(IsReadOnly),但它甚至没有进入权限类。我想知道是否需要通过某种中间件来允许这些端点