programing

Python에서 요청이 AJAX인지 확인합니다.

instargram 2023. 10. 4. 20:55
반응형

Python에서 요청이 AJAX인지 확인합니다.

파이썬에서 요청이 AJAX인지 확인할 수 있는 방법이 있습니까?

PHP와 동등한 것.$_SERVER['HTTP_X_REQUESTED_WITH'] == 'xmlhttprequest'?

AJAX 프레임워크가 요청에 X-Requested-With 헤더를 설정하면 해당 헤더를 사용하여 AJAX 호출을 탐지할 수 있습니다.이를 수행하는 것은 클라이언트 측 프레임워크에 달려 있습니다.

HTTP 헤더를 손에 넣는 것은 파이썬 프레임워크 선택에 달려 있습니다.장고에서.request개체에는 직접 사용할 수 있는 메서드가 있습니다.

is_ajax()jQuery 요청을 보내는 방법에 따라 다르나 사람들이 사용하기 때문에 Django 3.1(2021년 5월 28일 기준)부터 사용하지 않게 되었습니다.fetchAjax와 통화하기 위해 많은 방법을 사용하고 있습니다. 많은 경우 신뢰할 수 없게 되었습니다.

보통,text/html페이지를 로드하기만 하면 브라우저의 첫 번째 옵션에 있는 헤더에 요청됩니다.하지만, 만약 당신이 API 호출을 한다면, 그것은*/*기본적으로, 만약 당신이 첨부한다면.Accept: application/json머리글에서, 그러면 그것은

application/json

그래서 이것으로 ajax에서 요청이 오는지 쉽게 확인할 수 있습니다.

import re # make sure to import this module at the top

자네가 할 수 있는 한

requested_html = re.search(r'^text/html', request.META.get('HTTP_ACCEPT'))
if not requested_html:
    # ajax request it is

터보기어에서 요청이 ajax인지 확인하는 방법을 확인합니다.

또한 장고에서 이를 수행하는 방법에 대해서도 다음과 같이 설명합니다(당신의 틀에 따라 다릅니다).수신 HTTP 헤더 요청 내용을 확인하는 방법

누군가 이것이 유용하다고 생각할 수 있을 때를 대비하여 Sec-Fetch-Dest는 요청이 아약스 호출인지 여부를 암시할 수 있습니다.

그래서 누군가는 이런 것을 가질 수 있었습니다.

is_ajax_call = all(
                    request.headers.get("Sec-Fetch-Dest", "")
                    not in secFetchDest for secFetchDest in ["document", "iframe"]
                )

언급URL : https://stackoverflow.com/questions/8508602/check-if-request-is-ajax-in-python

반응형