Атрибут is_ajax
Атрибут is_ajax применяется к объекту запроса
request и показывает, был ли запрос отправлен
асинхронно через JavaScript. Значение равно True,
если в заголовке X-Requested-With передано значение
'XMLHttpRequest'. В остальных случаях возвращается
False. Атрибут удобно использовать для выбора
формата ответа: отдать JSON для AJAX-запроса или
полноценную HTML-страницу для обычного.
Синтаксис
request.is_ajax
Пример
Давайте проверим значение атрибута для обычного запроса:
from bottle import Bottle, request
app = Bottle()
@app.route('/')
def index():
return str(request.is_ajax)
Результат выполнения кода:
"False"
Пример
Давайте отдадим разный ответ в зависимости от того, является ли запрос AJAX-запросом:
from bottle import Bottle, request
app = Bottle()
@app.route('/user')
def user():
if request.is_ajax:
return 'user'
else:
return 'user page'
Результат выполнения кода для обычного запроса:
user page
Результат выполнения кода для AJAX-запроса:
user
Пример
Давайте отправим AJAX-запрос с заголовком
X-Requested-With и проверим ответ:
import requests
res = requests.get(
'http://localhost:8080/user',
headers={'X-Requested-With': 'XMLHttpRequest'}
)
print(res.text)
Результат выполнения кода:
"user"