Cookies MarkLogic xdmp.http*支持响应头中的多集Cookie

Cookies MarkLogic xdmp.http*支持响应头中的多集Cookie,cookies,marklogic,Cookies,Marklogic,MarkLogic服务端JavaScript中的xdmp.http*函数(xdmp.httpGet,xdmp.httpPost等)似乎不支持响应头中的多个Set Cookie——只返回一个Cookie xdmp.httpGet(“”) 相比之下,等效的xdmp:http-*函数的行为正确: xdmp:http get(“”) 200 好啊 真的 * 应用程序/json 2019年4月11日星期四19:21:40 GMT nginx 两块饼干 B 111 活命 JSON只能表示每个名称的一个字段

MarkLogic服务端JavaScript中的
xdmp.http*
函数(
xdmp.httpGet
xdmp.httpPost
等)似乎不支持响应头中的多个
Set Cookie
——只返回一个Cookie

xdmp.httpGet(“”)

相比之下,等效的xdmp:http-*函数的行为正确:

xdmp:http get(“”)


200
好啊 真的 * 应用程序/json 2019年4月11日星期四19:21:40 GMT nginx 两块饼干 B 111 活命
JSON只能表示每个名称的一个字段。 解析器显然正在工作

JSON中似乎缺少对多值http头的支持。 有很多方法可以做到这一点,但都是内部修复


您可以尝试调用
xdmp.eval
并将XQuery版本与XML结果一起使用,然后读取XML或以更合适的格式转换为JSON。

多个集cookie头将无效地使用http头。但是,当您在示例中展示请求参数而不是请求头的使用时,我感到困惑。Hi@grtjin。响应头中的多集cookie有效,并且xdmp:httpGet正确解析它(xdmp.httpGet不正确)。我提供的URL是出于测试目的——它将在响应头中生成两个集cookie条目。好了,现在我更清楚了。我将提交一个bug,看看会有什么结果……是的。这就是我在等待MarkLogic修复时正在采取的方法。谢谢
{
  "code": 200, 
  "message": "OK", 
  "headers": {
    "access-control-allow-credentials": "true", 
    "access-control-allow-origin": "*", 
    "content-type": "application/json", 
    "date": "Thu, 11 Apr 2019 19:12:55 GMT", 
    "server": "nginx", 
    "set-cookie": "b", // only one cookie
    "content-length": "111", 
    "connection": "keep-alive"
  }
}