如何重定向到codeigniter中的另一个函数?

Posted

技术标签:

【中文标题】如何重定向到codeigniter中的另一个函数?【英文标题】:How to redirect to another function in codeigniter? 【发布时间】:2019-08-07 11:11:52 【问题描述】:

我在节点 js 上运行 web-socket 并将值从节点 js 发送到 php codeigniter 控制器,之后每次插入值时我都尝试重定向到另一个函数。数据正在插入,但重定向功能不起作用,谁能帮我解决这个问题。

这是我的控制器功能:

$_POST = json_decode(file_get_contents('php://input'), true);
$new_id = $this->Iot_lora_data_model->set($_POST);
redirect ('websocket/data_process/'.$new_id);

【问题讨论】:

加载 url helper $this->load->helper('url'); 然后你可以重定向为redirect('websocket/data_process/'.$new_id, 'refresh'); 它已经加载但仍然无法工作 所以打印$new_id 你得到$new_id 与否。 我检查了,我在 $new_id 中得到了一个值 【参考方案1】:

我认为你应该使用 标头('位置:InsertUriHere''); 并在方法中传递一些你的变量。

【讨论】:

【参考方案2】:

如果重定向不起作用,也许您应该在重定向之前检查没有输出一些文本,并检查documentation中描述的其他可能的错误因素。 其他检查可能是:

使用定位方式时,当前通过 POST 访问页面并使用 HTTP/1.1 时,会自动选择 HTTP 状态码 303。

此外,您还应该检查另外两个参数,例如在第二个参数中使用 location 以避免不必要的选择。

redirect ('websocket/data_process/'.$new_id, 'location');

作为最终解决方案,John Rhoy Gadot 建议使用 header('location:'. base_url().''websocket/data_process/'.$new_id', true, "30X") 是正确的

注意30X 中的X 并检查正确的status code。 还要检查header function document 的第二个参数是否默认为true。

希望这一切对你有用。

【讨论】:

【参考方案3】:

您可以使用: header('位置:'.URL);

【讨论】:

以上是关于如何重定向到codeigniter中的另一个函数?的主要内容,如果未能解决你的问题,请参考以下文章

未重定向到 Codeigniter 4 中的特定 URL

如何重定向到同一控制器中的另一个动作?

执行IF条件时如何重定向到ReactJS中的另一个页面?

如何使我网站中的此按钮重定向到网站上的另一个页面?

重定向到 React 中的另一条路线时如何传递状态/道具?

如何使用Razor语法重定向到Jquery中的另一个页面