Php 当ajax中发生错误时,如何重定向到自定义Joomla错误代码页?

Php 当ajax中发生错误时,如何重定向到自定义Joomla错误代码页?,php,jquery,ajax,joomla,Php,Jquery,Ajax,Joomla,这个问题对joomla来说有点特殊 我已经在/template/MY_template/error.php中创建了自定义错误页面error.php。该文件检查错误代码,并为我设置的每个http代码显示不同的消息(我使用$This->error->code==“404”)进行检查。通常情况下,这种方法效果很好 现在的问题是,当我使用ajax时,我应该如何处理同样的事情?当我在发生错误时调用ajax时,我会返回http状态代码,响应是error.php文件输出。当我遇到错误时,我想将用户重定向到er

这个问题对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错误(还有许多其他自定义错误代码)。如果它不是ajax调用,则在我引发错误(JError::raiseError)并显示自定义错误页面时工作良好。但在ajax调用中,它将返回http状态(404),但我需要使用正确的http头从javascript重定向。 谢谢 Tanmay

这可能有助于:


    • 好的,在考虑了各种逻辑之后,我应用了以下内容。有人可能会得到帮助。。或者让我知道是否有更好的解决方案

      • 我的主要目的是根据错误代码(404403500…)向用户显示自定义错误页面
      • 现在,当ajax失败并返回特定的错误代码(404403500…)时,它还会返回完整的自定义错误页面,如我的问题中所讨论的
      • 我抓取了完整的HTML页面,并用它替换了当前页面
      例如:

      这将基本上用通过joomla生成的自定义错误页面覆盖当前页面

      如果我做错了什么,请告诉我

      谢谢,
      谢谢你的回复。我已经创建了自定义错误页面,它可以很好地处理404或任何其他错误代码。但我并不担心对ajax调用应用重定向。让我们用我所面临的场景来更新这个问题。你能在下面指导我的实现吗。Thanks@jtanmay:您的ajax代码似乎很好,有什么问题吗?感谢您的回复,ajax代码工作正常,并显示错误页面。我只是担心我是否做错了什么,或者是否有更好的方法。但是谢谢你的评论。我将自己的答案标记为已接受。@任何人都可以向我寻求指导!!谢谢
      $.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();
      }
      });