0

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\""
});
4

1 に答える 1

0

Cookie を見て、パスが設定されているかどうかを確認します (これは、Firefox で簡単に実行できます)。おそらく、それらは異なる Web アプリである可能性があり、その場合、コンテナーはそれぞれに対して異なるセッションを生成するためです。

したがって、質問に答えるより良い方法は、それらは異なる Web アプリですか? ということかもしれません。コンテナーは、これら 2 つの要求に対して異なるセッションを作成しますか?

于 2011-03-25T14:09:40.980 に答える