【发布时间】: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::_....)