从GetHttpRequestData()。headers检索接受语言的ColdFusion错误

时间:2019-04-15 23:57:05

标签: coldfusion header http-accept-language

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

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

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

1 个答案:

答案 0 :(得分:3)

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

以以下方式使用链接的变量:

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