Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Ajax调用不会查看函数django_Python_Jquery_Ajax_Django - Fatal编程技术网

Python Ajax调用不会查看函数django

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

您好,我正在向django视图发送请求,但它没有访问视图功能。两者都在同一个应用程序中。我正在使用调试工具,所以我尝试调试,但在我看来,没有收到任何呼叫,也没有收到任何请求 我的ajax调用代码如下

$.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攻击。:)