如何重定向到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中的另一个函数?的主要内容,如果未能解决你的问题,请参考以下文章