Как получить доступ к заголовкам входящего запроса в тритии?
Я хотел бы иметь возможность добавить некоторую логику в свой проект Tritium на основе заголовка входящего запроса. Можно ли получить доступ к информации заголовка, а затем выполнить match() с логикой ()?
Мой план состоит в том, чтобы взять существующий URL-адрес (доступ к которому можно получить с помощью обычного запроса GET) и предоставить ему второй режим работы, чтобы его можно было превратить в AJAX API. Когда JavaScript делает запрос API, я мог бы установить собственный флаг заголовка, чтобы платформа знала, как интерпретировать запрос по-разному.
2 ответа
Вы должны иметь доступ к заголовкам во входящем HTTP-запросе, используя синтаксис глобальной переменной. Например, чтобы получить доступ к имени хоста сайта:
$host
# => yourwebsite.com
Я считаю, что большинство стандартных заголовков доступны в Tritium как глобальные переменные. Однако я не уверен, что все заголовки доступны как глобальные переменные.
Внутри вашей папки проекта, на вашей машине разработки, должен быть tmp
папка, содержащая пакеты HTTP-запросов / ответов. Каждый пакет должен иметь отметку времени с указанием даты и времени запроса. Я думаю, что если вы загляните внутрь одной из этих папок, вы должны увидеть кучу файлов:
- incoming_request
- incoming_response
- outgoing_request
- outgoing_response
И, возможно, пятый файл. Я не могу вспомнить, так ли это в текущей версии платформы, но есть вероятность, что вы найдете пятый файл, содержащий глобальные переменные, которые сервер Tritium создает для хранения значений заголовка HTTP-запроса. Таким образом, вы можете заглянуть внутрь этого файла (если он существует) и узнать, какое имя переменной используют ваши заголовки HTTP.
Надеюсь, это поможет!
Я опаздываю на этот, но я подумала, что помогу кому-нибудь еще, кому нужна помощь в этом.
вам нужно создать два файла в каталоге скриптов, один из которых называется
request_main.ts
а также
response_main.ts
Затем вы можете использовать такие вещи, как функция parse_headers, которая перебирает заголовки запроса / ответа, в зависимости от файла, в который вы поместили код.
parse_headers() { # iterate over all the incoming/outgoing headers
log(name()) # log the name of the current cookie in the iteration
log(value()) # log the value of the current cookie in the iteration
}
parse_headers(/Set-Cookie/) { # iterate over the Set-Cookie headers only.
log(this())
}
Это будет регистрировать все имена ваших заголовков, чтобы внести изменения, вы можете использовать функции "setter", о которых вы можете прочитать здесь:
http://developer.moovweb.com/docs/local/configuration/headers
Удачи.