0

我们有一个 Web 小程序,它在 URL https://secure-ausomxeja.crmondemand.com/OnDemand/下加载……我们在同一个域中进行 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 中轻松完成此操作)。可能是因为这些可能是不同的网络应用程序,并且在这种情况下容器将为每个应用程序生成不同的会话。

因此,回答这个问题的更好方法可能是,这些不同的网络应用程序是什么?容器会为这两个请求创建不同的会话吗?

于 2011-03-25T14:09:40.980 回答