我们有来自南行的Set-Cookie值,其中一个我们需要在返回请求者之前在网关内操作。
当我使用-v通过curl执行请求时,标题中的格式为:
< Set-Cookie: COOKIE_ONE=-1%2C1; Path=/
< Set-Cookie: COOKIE_TWO=6tuDIqNZTQl%2FqbPXU0M13tcl0nM%3D%0A%3B2015-03-12+11%3A24%3A38.766_1426173878765-214752_1_-1002%2C-1%2CUSD_1; Expires=Sat, 11-Apr-15 15:24:38 GMT; Path=/
当我尝试使用上下文变量context.targetResponse.headers ['Set-Cookie']在javascript中访问它们时,它只返回第一个值。我已经尝试了其他变体以及检查跟踪中的Set-Cookie的值。我能够使用提取变量策略中的模式获取特定的一个,但我想访问所有这些,以便我可以编辑它然后发送它们。
我知道使用cookie和cookie操作并不是真正符合RESTful API的精神,但这是我们必须处理的南行和消费者的要求。
答案 0 :(得分:0)
请查看this blog post,其中介绍了如何应用变通方法来实现您正在寻找的内容。实质上,您需要连接列表中的所有值,然后解析字符串
var hdr = context.getVariable('response.header.set-cookie.values')+'';
// get the array of header values:
var a = hdr.substring(1, hdr.length-1).split(',');
希望它有所帮助!