这个问题对于joomla来说有点具体。
我在/template/MY_TEMPLATE/error.php中创建了自定义错误页面error.php。此文件检查错误代码并显示我设置的每个http代码的不同消息(我使用$ this-> error-> code =='404'查看)。通常这很好。
现在问题是,当我使用ajax时,我应该如何处理相同的事情?当我在发生错误时执行ajax调用时,我会返回http状态代码,并且响应是error.php文件输出。当我收到错误时,我想将用户重定向到带有正确错误代码的error.php(自定义错误页面),这会相应地显示消息!
场景: - 我正在请求对具有任务(com_greatsuff)的组件进行ajax调用,该任务执行一些webservice调用以获取基于提供的itemcode的东西列表。如果在webservice上找不到itemcode,它将返回404 Error。(还有许多其他自定义错误代码)。如果它不是ajax调用,它会很好,因为我引发错误(JError :: raiseError),并显示自定义错误页面。但是在ajax调用上,它将返回http状态(404),但我需要使用正确的http标头从javascript重定向。 谢谢, Tanmay
答案 0 :(得分:0)
这可能有所帮助:
答案 1 :(得分:0)
好的,在考虑了各种逻辑后,我应用了以下内容。有人可能会得到帮助......或者让我知道是否有人有更好的解决方案。
例如:
$.ajax({
url: 'index.php?option=com_test&task=listdata&no_html=1',
success: function(data) {
$('.result').html(data);
alert('Load was performed.');
}
failure: function(data){
document.write("");
document.close();
document.write(data.responseText);
document.close();
}
});
这将基本上使用joomla生成的自定义错误页面覆盖当前页面。
如果我做错了,请告诉我。
谢谢, Tanmay