Kun*_*alC 4 ajax jquery primefaces
我正在尝试为所有ajax请求配置一个oncomplete方法,以便我可以处理会话超时.
我尝试添加以下脚本但它的工作方式与为p:ajax元素设置oncomplete属性的方式不同.每次发出Ajax请求时都不会执行.
$.ajaxSetup({method: post,
complete: function(xhr, status, args){
var xdoc = xhr.responseXML;
if(xdoc == null){
return;
}
errorNodes = xdoc.getElementsByTagName('error-name');
if (errorNodes.length == 0) {
return;
}
errorName = errorNodes[0].childNodes[0].nodeValue;
errorValueNode = xmlDoc.getElementsByTagName('error-message');
errorValue = errorValueNode[0].childNodes[0].nodeValue;
alert(errorValue);
document.location.href='${pageContext.request.contextPath}/login/login.jsf';
}
});
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
PrimeFaces更新版本(在这里使用PF 5)
var originalPrimeFacesAjaxUtilsSend = PrimeFaces.ajax.Request.send;
PrimeFaces.ajax.Request.send = function(cfg) {
if (!cfg.oncomplete) {
cfg.oncomplete = doYourStuff;
}
originalPrimeFacesAjaxUtilsSend.apply(this, arguments);
};
Run Code Online (Sandbox Code Playgroud)
只是为了保持它的位置,试图找到stackoverflow但只有旧版本..希望有人发现这有用.
我设法通过包装Primefaces AjaxUtils方法来实现这一点.
var originalPrimeFacesAjaxUtilsSend = PrimeFaces.ajax.AjaxUtils.send;
PrimeFaces.ajax.AjaxUtils.send = function(cfg) {
if (!cfg.oncomplete) {
// register default handler
cfg.oncomplete = oncompleteDefaultHandler;
}
originalPrimeFacesAjaxUtilsSend.apply(this, arguments);
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6444 次 |
最近记录: |