Похоже, что функции xdmp.http*
(xdmp.httpGet
, xdmp.httpPost
и т. Д.) В JavaScript MarkLogic на стороне службы не поддерживают множественные Set-Cookie
в заголовке ответа - возвращается только один из файлов cookie
xdmp.httpGet ( 'https://httpbin.org/response-headers?Set-Cookie=a&Set-Cookie=b')
{
"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"
}
}
Для сравнения, эквивалентные функции xdmp: http- * ведут себя корректно:
xdmp: HTTP-получить ( 'https://httpbin.org/response-headers?Set-Cookie=a&Set-Cookie=b')
<response xmlns="xdmp:http">
<code>200</code>
<message>OK</message>
<headers>
<access-control-allow-credentials>true</access-control-allow-credentials>
<access-control-allow-origin>*</access-control-allow-origin>
<content-type>application/json</content-type>
<date>Thu, 11 Apr 2019 19:21:40 GMT</date>
<server>nginx</server>
<set-cookie>a</set-cookie> // both cookies
<set-cookie>b</set-cookie>
<content-length>111</content-length>
<connection>keep-alive</connection>
</headers>
</response>