在执行AJAX调用时扩展Liferay的会话
extend session of Liferay when performing AJAX call
我创建了一个portlet,它使用AJAX的每个函数。也就是说,portlet只呈现一次,我没有使用processAction之类的东西。
有没有一种方法可以使用javascript使用内置的Liferay函数来扩展用户的会话?
我试过
Liferay.Session.extend();
但它似乎不起作用。。
我还在ICEfaces论坛上尝试了一个解决方案,那就是
if (Liferay.Session._stateCheck) {
window.clearTimeout(Liferay.Session._stateCheck);
Liferay.Session._stateCheck = null;
}
Liferay.Session.init({
autoExtend: false,
timeout: Liferay.Session._timeout,
timeoutWarning: Liferay.Session._warning
});jQuery.ajax({url: Liferay.Session._sessionUrls.extend});
也不起作用。。
每当用户点击按钮时,我都会放入这些代码块
任何小费都会大有帮助。。
我遇到了同样的问题并解决了它。其主要思想是将session.js覆盖到ext插件中,并添加一些额外的方法:
extendExternal: function() {
var instance = this;
if (instance != undefined) {
instance.extend();
}
}
还应更新setCookie方法:
setCookie: function(status) {
var instance = this;
var currentTime = new Date().getTime();
var options = {
secure: A.UA.secure,
path: "/"
};
A.Cookie.set(instance._cookieKey, status || currentTime, options);
}
为了对每个页面使用相同的cookie路径。
一些全局ajax事件可以用于extendExternal方法的"自动"调用:
AUI().use('event', function(A){
A.on('io:start', function(transactionid, arguments){
if (Liferay.Session._cookieKey != undefined && Liferay.Session._cookieKey != null) {
if (arguments != 'sessionExtend') {
Liferay.Session.extendExternal();
}
}
});
});
在这种情况下,扩展方法必须更新为:
// added in order to differentiate session extend ajax calls and other ajax call, to avoid infinit loop
A.io.request(instance._sessionUrls.extend, {
arguments: 'sessionExtend'
});
您可以在此处查看解决方案。
Liferay.Session.extend();是答案,我在测试代码
相关文章:
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 验证会话中是否存在对象's数组
- Liferay:从portlet调用JSON服务
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 通过javascript从会话中提取用户名
- 将会话变量从一个页面传递到另一个页面
- 如何保持会话的活力
- Codeigniter会话概念简要说明
- Php未获取会话的最新值
- 当达到codeigniter/tank auth会话超时时,在ajax调用中处理php重定向
- 如何检测用户是否在同一会话中打开了多个窗口或选项卡
- PHP会话页面刷新不起作用
- 使用主题运行时portlet liferay时出现Javascript错误
- 有可能通过sessionID获得快速会话吗
- 让会话值可用于JavaScript的好方法是什么
- DreamFactory REST API POST休息/用户/会话请求总是在IE9中返回错误
- '会话'未定义-会话存储的Este JS/Express/Redis
- 如何使用 php 会话变量作为 Angular Js 数据
- 在执行AJAX调用时扩展Liferay的会话
- 无法以编程方式扩展liferay会话