我有一个利用Visualize.js的网站 - 它具有简单的登录/注销功能。每次登录时,我都会调用authenicateUser()
函数并注销destroySession()
。当我尝试登录然后注销然后再次登录时,当我尝试渲染我现有的报告时,我得到了这个抛出的错误:
HTTP Status 401 - Full authentication is required to access this resource
功能authenicateUser()
和destroySession()
如下所示:
function authenticateUser () {
var myConfig = {
auth : {
name : "superuser",
password : "superuser"
}
};
visualize.config( myConfig );
}
function destroySession() {
visualize( function ( v ) {
// Logout form JRS and finish the session.
v.logout().done( function () {
} );
} )
}
我想指出的是,当我第一次登录我的帐户时,不会抛出此错误并完美呈现报告。
为什么在注销后再次登录会发生这种情况?
答案 0 :(得分:5)
这似乎对我有用。所以我首先调用visualize.config(config),以便我可以存储公共配置,在可视化调用之间共享它们然后调用登录方法,以便我可以使用提供的auth对象执行身份验证。我的参考:http://community.jaspersoft.com/wiki/visualizejs-api-notes-and-samples-v56
visualize.config( config );
visualize( function ( v ) {
v.login( config );
} );
虽然这个解决方案不在他们的文档中,但我把它们逐个放在最后解决问题。
答案 1 :(得分:1)
该文档包含此问题的解决方案,尽管它不是非常明确。请参阅文档链接
中的示例代码和示例链接visualize.config({
auth: {
name: "superuser",
password: "superuser"
}
});
Share common config between 'visualize' calls
请注意: 实际上,当您登录时,您需要在适当的事件中注销。这取决于您的应用要求,例如如果您在现有的Web应用程序中嵌入报表,将现有应用程序登录/ lougut链接起来似乎更合适