我们有一个 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\""
});