我正在尝试通过node.js脚本抓取使用ICEfaces Web框架创建的网站。我已经成功处理了登录,然后从主页面获取了一些数据(即ice.session和ice.view,以及登录响应返回的JSESSIONID cookie)。
我遇到的问题是当我尝试对/ block / URL执行AJAX POST请求时。如果我自己执行请求,它会返回一些数据(而不是我需要的数据),但如果我在任何其他请求之后执行此操作,则会得到<session-expired/>
。我发送请求的ICEfaces / block / URL中的哪一个(我已尝试使用/ send-receive-updates,/ dispose-views,甚至/ ping)。我甚至连续两次尝试同样的请求只是为了踢,我总是得到<session-expired/>
响应作为第二个回复。当我使用Chrome浏览页面时,我已经监控了请求,据我所知,我正在发送所有正确的表单数据(以及正确的标题)。当我在浏览器中加载页面时页面工作得很好,所以必须有一些我做得不对的。
显然,你在ICEfaces中执行请求的顺序很重要(即它不是无状态的,我猜这是有道理的)。我只是移动了请求,最终得到了我想要的响应。
答案 0 :(得分:0)
IceWindow,IceView和ViewState
每当您执行ajax提交时,都需要作为参数传递。
Managed bean使用ViewState值获取当前视图视图的上一个实例。