Python Ajax调用不会查看函数django
您好,我正在向django视图发送请求,但它没有访问视图功能。两者都在同一个应用程序中。我正在使用调试工具,所以我尝试调试,但在我看来,没有收到任何呼叫,也没有收到任何请求 我的ajax调用代码如下Python Ajax调用不会查看函数django,python,jquery,ajax,django,Python,Jquery,Ajax,Django,您好,我正在向django视图发送请求,但它没有访问视图功能。两者都在同一个应用程序中。我正在使用调试工具,所以我尝试调试,但在我看来,没有收到任何呼叫,也没有收到任何请求 我的ajax调用代码如下 $.ajax({ url: '/edit_profile/', type: 'get', // This is the default though, you don't actually need to always mention it success: function
$.ajax({
url: '/edit_profile/',
type: 'get', // This is the default though, you don't actually need to always mention it
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
url.py
path('edit_profile/', views.edit_profile , name="edit_profile"),
def edit_profile(request):
print(request)
print(request)
if request.method == 'POST':
return render(request, 'authenticate/edit_profile.html', context)
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def edit_profile(request):
print(request)
if request.method == 'GET':
return render(request, 'authenticate/edit_profile.html')
path('edit_profile/', views.edit_profile , name="edit_profile"),
view.py
path('edit_profile/', views.edit_profile , name="edit_profile"),
def edit_profile(request):
print(request)
print(request)
if request.method == 'POST':
return render(request, 'authenticate/edit_profile.html', context)
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def edit_profile(request):
print(request)
if request.method == 'GET':
return render(request, 'authenticate/edit_profile.html')
path('edit_profile/', views.edit_profile , name="edit_profile"),
我正在调试,但此查看功能未收到调用。您可以在此处看到实时演示 如果不希望视图检查csrf令牌,请首先执行此操作。这可以通过使用decorator@csrf\u来完成 view.py
path('edit_profile/', views.edit_profile , name="edit_profile"),
def edit_profile(request):
print(request)
print(request)
if request.method == 'POST':
return render(request, 'authenticate/edit_profile.html', context)
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def edit_profile(request):
print(request)
if request.method == 'GET':
return render(request, 'authenticate/edit_profile.html')
path('edit_profile/', views.edit_profile , name="edit_profile"),
url.py
path('edit_profile/', views.edit_profile , name="edit_profile"),
def edit_profile(request):
print(request)
print(request)
if request.method == 'POST':
return render(request, 'authenticate/edit_profile.html', context)
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def edit_profile(request):
print(request)
if request.method == 'GET':
return render(request, 'authenticate/edit_profile.html')
path('edit_profile/', views.edit_profile , name="edit_profile"),
ajax请求
$.ajax({
url: '/edit_profile/',
type: 'GET',// This is the default though, you don't actually need to always mention it
data:{},
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
你已经检查过Chrome Devtools网络面板中的ajax调用了吗?只有csrf令牌?是的,我想是:)@GamerTanks。意思是说如果我使用ajax,无论是POST还是GET,我都需要使用csrf令牌exampt。你可以使用这种方式,也可以使用csrf令牌来防止csrf攻击。:)