在AJAX调用中,传递给URL参数的视图名称应该是在Django中定义的有效视图名称。如果该视图没有被正确定义,则会导致404错误。以下是示例代码,演示如何重命名实际的视图名称和URL参数。例如,在视图def my_view(request)中:
#urls.py
from django.urls import path
from . import views
urlpatterns = [
path('my_view/', views.my_view, name='my_view'),
]
#views.py
from django.shortcuts import render
from django.http import HttpResponse
def my_view(request):
if request.is_ajax():
view_name = request.POST.get('view_name')
if view_name == 'my_view':
return HttpResponse('Success')
else:
return HttpResponse('Invalid View Name')
else:
return render(request, 'my_template.html')
在上面的代码中,我们检查request.POST中的视图名称参数,并在检查通过的情况下使用HttpResponse对象返回成功响应。否则,我们返回一个包含“Invalid View Name”消息的HttpResponse。
AJAX调用中的JavaScript代码应该如下所示:
$.ajax({
type: 'POST',
url: '/my_view/',
data: {'view_name': 'my_view'},
success: function(data) {
alert(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + ' - ' + errorThrown);
},
});
在上面的代码中,我们指定URL参数为my_view,并将其作为数据对象的视图名称参数传递。如果请求成功,则弹出响应消息;否则,将显示错误消息。