我有这个端点,我正在使用AJAX从控制台向其发出发布请求,而不是我向其发出请求的网页。
$.ajax({
type: 'POST',
url: "http://127.0.0.1:8000/browse/",
data: {csrfmiddlewaretoken: window.CSRF_TOKEN},
success: function() {
console.log("Success!");
}
})
但是它给了我
VM29 jquery.min.js:2 POST http://127.0.0.1:8000/browse/ 403 (Forbidden)
Django视图代码除了返回伪数据外什么也不做
def Browse(request):
data = [{'name': 'Peter', 'email': 'peter@example.org'},
{'name': 'Julia', 'email': 'julia@example.org'}]
return JsonResponse(data, safe=False)
urls.py
urlpatterns = [
path('browse/', views.Browse, name = 'browse'),
答案 0 :(得分:1)
由于您当前不使用表单,因此可以免除csrf
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def Browse(request):
data = [{'name': 'Peter', 'email': 'peter@example.org'},
{'name': 'Julia', 'email': 'julia@example.org'}]
return JsonResponse(data, safe=False)
答案 1 :(得分:0)
data: {"csrfmiddlewaretoken" : "{{csrf_token}}"}
data: {csrfmiddlewaretoken: window.CSRF_TOKEN},
希望这对您有用,否则请点击以下链接: https://docs.djangoproject.com/en/dev/ref/csrf/#ajax