首页 > 解决方案 > ColdFusion 错误从 GetHttpRequestData().headers 检索接受语言

问题描述

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

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

  2. 我还可以拉回 headers 对象中的其他值,例如GetHttpRequestData().headers.hostGetHttpRequestData().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);
} 

标签: coldfusionheaderhttp-accept-language

解决方案


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

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

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

推荐阅读