我正在尝试使用xmlHttpRequest登录web服务。
有问题的web服务似乎使用cookies进行身份验证。在分析了与IE浏览器的通信后,我得出的结论是,序列基本上如下:
(2)客户端发送POST请求,其中包含输入的用户名和密码。
(3)服务器向同一URL发送重定向消息(HTTP 302),其中具有包含会话ID的"Set-Cookie“报头
(4)客户端在重定向消息中重新发送包含从服务器接收的cookie的同一URL。
(5)服务器接收session ID并进行鉴权。
然而,我发现了一个问题。
更糟糕的是,xmlHttpRequest似乎没有检测到重定向事件(如果这是可能的,我至少可以在重新发送请求之前设置Cookie头)。onreadystatechange()函数仅在所有重定向过程完成后调用。
此外,由于它与“公共”web服务相关,因此我无法在服务器端更改任何内容。
有什么想法吗?
发布于 2010-11-05 22:06:40
据我所知,您不能使用xmlHttpRequest来查询与您所连接的服务器不同的服务器的url。你能做到吗?
解释一下,如果包含javascript代码的页面是yourdomain.com格式的,那么就不能使用xmlHttpRequest在example.com中调用web服务。
发布于 2010-11-09 05:23:32
通过前面的评论,我更好地理解了这种情况。
第(4)步和第(5)步只是将您重定向到主页,真正的身份验证在第(3)步结束,一旦您获得cookie(例如使用getheaders ),您就登录了。然后,对于您使用正确的cookie进行的每个新请求,网站都会将您视为已登录的用户。
您是否正在尝试自动查询网站?或者只是自动化登录过程?
https://stackoverflow.com/questions/4106288
复制相似问题