URL https://secure-ausomxeja.crmondemand.com/OnDemand/でロードする Web アプレットがあります... 同じドメイン内で Web サービス呼び出しを行っているところから (https://secure-ausomxeja.crmondemand) .com/Services/Integration) JQuery を使用します。すべてが同じドメインで行われているにもかかわらず、JSessionId (httponly Cookie) が JQuery Web サービス呼び出しで渡されないという事実を理解できません。興味深いことに、Web サービスの URL がhttps://secure-ausomxeja.crmondemand.com/OnDemand/ ...で始まる場合(正しくありませんが)、ブラウザーは Cookie を適切に渡します。
問題は、httponly Cookie がサーバーに送り返されるためには、同じドメインまたは最初のディレクトリ (この場合は OnDemand) の名前さえあれば十分でしょうか?
以下は、JSessionId Cookie を渡さないコード スニペットです。
$.ajax({
url:"https://secure-ausomxeja.crmondemand.com/Services/Integration",
type: "POST",
dataType: "xml",
data: ...,
beforeSend: function(xhr) { xhr.setRequestHeader("SOAPAction", "..."); },
complete: endSaveProduct,
contentType: "text/xml; charset=\"utf-8\""
});
以下は、JSessionId Cookie を渡すコード スニペットです (ただし、その場所で利用できる Web サービスがないため意味がありません)。
$.ajax({
url:"https://secure-ausomxeja.crmondemand.com/OnDemand/...",
type: "POST",
dataType: "xml",
data: ...,
beforeSend: function(xhr) { xhr.setRequestHeader("SOAPAction", "..."); },
complete: endSaveProduct,
contentType: "text/xml; charset=\"utf-8\""
});