Ошибка ColdFusion при получении языка принятия из заголовков GetHttpRequestData (). - PullRequest
2 голосов
/ 16 апреля 2019

Я пытаюсь получить переменную GetHttpRequestData().headers.accept-language в ColdFusion 2018, но получаю ошибку.

  1. Основной объект GetHttpRequestData().headers выглядит нормально.Это информация из заголовка запроса html.

  2. Я также могу получить другие значения в объекте заголовков, такие как GetHttpRequestData().headers.host или GetHttpRequestData().headers.accept

  3. Однако, если имя переменной содержит тире, т.е.GetHttpRequestData().headers.accept-language, я получаю ошибку, потому что CF думает, что я выполняю математическую функцию.

Как я могу вернуть эту переменную?Это должно быть просто.

пример cffiddle

// Dump the Object    
writeDump(var="#GetHttpRequestData().headers#",format="html")

// Dump a result in the Object OK
writeDump(var="#GetHttpRequestData().headers.host#",format="text")

// Dump a result in the Object OK
writeDump(var="#GetHttpRequestData().headers.accept#",format="text")

// CF Thinks I'm executing a mathematical function
// when structure variable has a dash in the name
try {
    writeDump(var="#GetHttpRequestData().headers.accept-language#",format="text")
} catch (any e) {
    writeOutput("Error: " & e.message);
} 

1 Ответ

3 голосов
/ 16 апреля 2019

Ответ на переменные ColdFusion с разделителями тире.

Используйте цепочечные переменные следующим образом:

 #GetHttpRequestData().headers['accept-language']#
  • обратите внимание на падение разделителя точек
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...