【问题标题】:how to redirect to custom Joomla error code page when error occurs in ajax?当ajax发生错误时如何重定向到自定义Joomla错误代码页面?
【发布时间】:2010-08-06 18:34:46
【问题描述】:

这个问题是 joomla 特有的。

我在 /template/MY_TEMPLATE/error.php 中创建了自定义错误页面 error.php。此文件检查错误代码并为我设置的每个 http 代码显示不同的消息(我使用 $this->error->code == '404' 检查)。通常这很好用。

现在的问题是,当我使用 ajax 时应该如何处理同样的事情?如果发生错误,当我执行 ajax 调用时,我会返回 http 状态代码,响应是 error.php 文件输出。当我收到错误时,我想使用正确的错误代码将用户重定向到 error.php(自定义错误页面),这将相应地显示消息!

场景: - 我正在请求对具有任务 (com_greatsuff) 的组件进行 ajax 调用,该任务执行一些 Web 服务调用以获取基于提供的项目代码的内容列表。如果在 web 服务上找不到 itemcode,它将返回 404 错误。(还有许多其他自定义错误代码)。如果它不是 ajax 调用,它会在我引发错误(JError::raiseError)时运行良好,并显示自定义错误页面。但是在 ajax 调用中,它将返回 http 状态(404),但我需要使用正确的 http 标头从 javascript 重定向。 谢谢, 天美

【问题讨论】:

    标签: php jquery ajax joomla


    【解决方案1】:

    【讨论】:

    • 感谢您的回复。我已经创建了自定义错误页面,它适用于 404 或任何其他错误代码。但我不知道为 ajax 调用应用重定向。让我们也用我所面临的情况来更新问题。
    • 您能否指导我在下面的实现。谢谢
    • @jtanmay:您的 ajax 代码似乎没问题,有什么问题/问题?
    • 感谢您的回复,ajax 代码工作正常,并显示错误页面。我只是担心我做错了什么,或者是否有更好的方法。但感谢您的评论。我会将自己的答案标记为已接受。
    【解决方案2】:

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

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

    例如:

    $.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生成的自定义错误页面覆盖当前页面。

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

    谢谢, 天美

    【讨论】:

    • @任何人都可以得到一些指导!谢谢
    猜你喜欢
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2020-06-08
    • 2014-12-30
    • 2011-12-24
    • 2015-01-04
    相关资源
    最近更新 更多