Как определить, является ли HTTP-запрос асинхронным в Python или Pylons - PullRequest
2 голосов
/ 10 ноября 2010

Я не могу не думать, что это дубликат, но если это так, я не могу найти двойника.

Я только начинаю изучать Python (фокусируясь на Pylons), и я хотел бы знать, есть ли способ определить, выполняется ли вызов контроллера асинхронно или нет. В PHP это будет выглядеть примерно так:

function isAjax() {
    return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
}

Есть ли такой, который хорошо работает для всего Python, или, может быть, тот, который очень хорошо работает только в Pylons?

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 10 ноября 2010

Чтобы напрямую перевести этот код в python, используя пилоны, вы должны сделать что-то вроде:

def isAjax(request):
    return request.environ.get('HTTP_X_REQUEST_WITH') == 'XMLHttpRequest'

где запрос - это объект запроса, переданный контроллеру.

1 голос
/ 20 марта 2011

Вставка поддерживает этот метод:

request.is_xhr

Это реализовано как:

return self.environ.get('HTTP_X_REQUESTED_WITH', '') == 'XMLHttpRequest'
...