第二次登录后Visualize.js身份验证错误

时间:2015-05-29 00:21:16

标签: jasper-reports visualize

我有一个利用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 () {
        } );
    } )
}

我想指出的是,当我第一次登录我的帐户时,不会抛出此错误并完美呈现报告。

为什么在注销后再次登录会发生这种情况?

2 个答案:

答案 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链接起来似乎更合适