【问题标题】:ColdFusion error retrieving accept-language from GetHttpRequestData().headersColdFusion 错误从 GetHttpRequestData().headers 检索接受语言
【发布时间】:2019-04-15 23:57:04
【问题描述】:

我正在尝试在 ColdFusion 2018 中提取变量 GetHttpRequestData().headers.accept-language,但出现错误。

  1. 主要对象GetHttpRequestData().headers 看起来不错。这是来自 html 请求标头的信息。

  2. 我还可以拉回 headers 对象中的其他值,例如 GetHttpRequestData().headers.hostGetHttpRequestData().headers.accept

  3. 但是,如果变量名包含破折号,即。 GetHttpRequestData().headers.accept-language,我收到一个错误,因为 CF 认为我正在执行数学函数。

我怎样才能返回这个变量?应该很简单。

cffiddle example

// 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);
} 

【问题讨论】:

  • cgi 变量有用吗?

标签: coldfusion header http-accept-language


【解决方案1】:

用破折号分隔符回答 ColdFusion 变量。

按以下方式使用链式变量:

 #GetHttpRequestData().headers['accept-language']#
  • 注意点分隔符的下降

【讨论】:

  • 是的。仅供参考,当使用点符号时,您仅限于符合 CF 的 variable naming rules 的键(即必须以字母/下划线开头,不能包含空格或其他无效字符,如破折号等)。每当处理奇异或无效的变量名时,请改用结构(或关联数组)表示法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-04
  • 2017-09-04
  • 1970-01-01
  • 2023-02-11
  • 2011-09-03
相关资源
最近更新 更多