【问题标题】:Joomla redirect after ajax request failsajax请求失败后Joomla重定向
【发布时间】:2014-08-22 04:45:07
【问题描述】:

ajax 请求调用我的 MVC 组件中的控制器函数。 在这个函数的末尾有一个 Joomla 重定向

JFactory::getApplication()->redirect(JRoute::_($redirect_url, false));

问题是,重定向的页面无法打开!在调试会话时,我可以看到控制器将启动重定向,并将正确的详细信息发送到 view.html.php。但是页面,在这种情况下是tmpl中的不同视图,不会打开!

这是因为 ajax 调用吗?我必须在 ajax 成功部分做些什么吗?

【问题讨论】:

  • 如果您可以粘贴更多代码,例如表单、ajax 和控制器函数,那就更好了。一种方法是在控制器中您应该向 ajax 调用发回一些响应,并根据您决定的响应重定向(通过 js)或执行其他任务。
  • jQuery(document).ready( function() { jQuery(".productorder").click(function (SetOrder) { var order = jQuery(this).find("#productnr"). attr("value"); var formdata = new FormData(); formdata.append("productnr", order); jQuery.ajax({ type: "POST", dataType: "json", data: formdata, processData: false , contentType: false, url: "index.php?option=com_component&task=controller.function", success:function(result) { } }); }); });
  • 在表格中我有几个“按钮”。这些不是真正的按钮,它们是具有 href 和 onlick 功能的图像,它们正在初始化 ajax 调用。提交按钮是首选,但不可能,因为我需要传输一个值(productnr)。每个“按钮”都有自己的产品编号。所以无法完成表单提交,而是我进行了一个 jquery ajax 调用来解决控制器功能。但最后我需要通过控制器函数中的最后一条语句进行重定向,这通常会完成 ->redirect(JRoute::_....)

标签: ajax redirect joomla


【解决方案1】:

是的,现在我在控制器中进行 url 准备并将 url 发送回 ajax。

$redirect_url = "index.php?option=com_mycomponent&view=my_view&layout=different_layout"

Ajax 将使用给定的 url 进行重定向。 window.location = result.data;

我从那里开始努力使用 Joomla 的 SEF 部分来获得一个 SEF 友好的 URL。

【讨论】:

    猜你喜欢
    • 2022-12-16
    • 2017-02-14
    • 2015-11-26
    • 2019-03-31
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    • 2016-07-26
    相关资源
    最近更新 更多