我们在单独的部署中使用Orbeon3.9(跨上下文),应用程序安全性使用OpenSSO,服务器使用glassfish。
注意: Orbeon提交(backrequests)是由另一个web应用程序处理的,它的contex只能从本地主机访问,而不能在OpenSSO下访问。
会话超时到期后(浏览器中打开的表单超时时间足够长) Orbeon是否会陷入“加载...”在第一次“点击”之后循环。
正如Firebug所说:
1) Orbeon ajax POST-请求/application-context/orbeon/xforms-server
2) OpenSSO停止该请求,临时移动302
3) ajax是GET-requesting /opensso/cdcservlet?
4)返回200,可能是登录页面内容
5)响应被忽略,转到1)
永无止境。
我已经尝试过了:http://wiki.orbeon.com/forms/how-to/other/redirect-users-error
但是没有帮助,因为对话框没有显示。
我们需要将浏览器重定向到该登录页面。
有什么建议吗?
发布于 2012-11-09 02:26:27
按照代码的编写方式,如果希望Orbeon Forms客户端代码将来自服务器的答案识别为错误,则服务器还需要在HTTP响应的正文中包含一个如下所示的文档:
<error>
<title>...</title>
<body>...</body>
</error>如果这样的文档不存在,那么客户端代码将在一段延迟之后重试请求,并显示“正在加载…”。在此期间。因此,在您的示例中,如果请求是从Ajax请求重定向的,则需要找到一种方法让登录页面使用该文档进行响应。
现在,我还认为Orbeon Forms应该在这方面进行改进,并且应该将对Ajax请求的302应答视为错误,无论是默认情况下,还是允许您配置此行为。出于这个原因,我打开了issue #560。
https://stackoverflow.com/questions/13292698
复制相似问题