Django 如何检查请求是否是 Ajax

Aya*_*hid 5 django ajax django-request django-3.1 django-4.0

HttpRequest.is_ajax() 方法已被弃用,因为它依赖于 jQuery 特定的方式来表示 AJAX 调用,而当前的使用倾向于使用 JavaScript Fetch API。根据您的用例,您可以编写自己的 AJAX 检测方法,或者如果您的代码依赖于客户端 Accept HTTP 标头,则可以使用新的 HttpRequest.accepts() 方法。

Dim*_*zis 5

def is_ajax(request):
  return request.headers.get('x-requested-with') == 'XMLHttpRequest'
Run Code Online (Sandbox Code Playgroud)


Aya*_*hid 3

如果您正在编写自己的 AJAX 检测方法,则 request.is_ajax() 可以完全复制为

if request.headers.get('X-Requested-With') == 'XMLHttpRequest':
    is_ajax = True
else:
    is_ajax = False
Run Code Online (Sandbox Code Playgroud)