xmlHttpRequest + cookies +重定向问题

我正尝试使用xmlHttpRequest登录到Web服务。

问题中的Web服务似乎使用cookie进行身份验证。 在分析与IE浏览器的通信之后,我得出结论,序列基本如下:

(1)服务器发送一个请求用户名和密码的表单。

(2)客户端发送包含输入用户名和密码的POST请求。

(3)服务器使用包含会话ID的“Set-Cookie”头将重定向消息(HTTP 302)发送到相同的URL

(4)客户端在重定向消息中重新发送包含从服务器接收的cookie的相同URL。

(5)服务器接收会话ID并结束认证。

我试图用JavaScript中的xmlHttpRequest来模拟相同的序列。 但是,我发现了一个问题。

看来xmlHttpRequest不会重定向cookie。 换句话说,(4)没有发生,认证没有完成。

为了使问题变得更糟,xmlHttpRequest似乎没有检测到重定向事件(这是可能的,我可以至少在重新发送请求之前设置Cookie标头)。 onreadystatechange()函数仅在所有重定向过程完成后才被调用。

所以,我没有任何解决方案来解决此问题并完成身份验证。

另外,由于它涉及“公共”Web服务,因此我无法在服务器端更改任何内容。

任何想法?


据我所知,您不能使用xmlHttpRequest查询与您连接的服务器不同的服务器的url。 你能做到吗?

如果页面中的JavaScript代码位于yourdomain.com中,则无法使用xmlHttpRequest在example.com中调用Web服务。


根据以前的评论,我更好地理解了这种情况。

步骤(4)和(5)只是将您重定向到主页面,真正的验证以(3)结束,一旦您获得了cookie(例如使用getheaders),您就登录了。然后,对于每个新请求使用正确的cookies,网站会将您视为登录用户。

你是否试图自动查询该网站? 或者只是自动登录过程?

链接地址: http://www.djcxy.com/p/3791.html

上一篇: Problems with xmlHttpRequest + cookies + redirect

下一篇: How can I suppress the browser's authentication dialog?