在 Codeigniter 中如何通过 ngrok 执行 POST 请求?
Posted
技术标签:
【中文标题】在 Codeigniter 中如何通过 ngrok 执行 POST 请求?【英文标题】:In Codeigniter how to perform POST request through ngrok? 【发布时间】:2019-10-18 09:40:13 【问题描述】:我有一个网站(使用 Codeigniter 3.1.10)在通过 localhost 访问时工作正常。我正在尝试通过 ngrok 访问它来测试它,即通过互联网从另一个远程系统访问它。通过 ngrok 我可以访问登录页面:
http://f94181a4.ngrok.io/mysite/logincontroller/login
这将显示登录视图。但是,当我单击登录视图/页面中的提交按钮时,它会从远程系统浏览器发送如下 POST 请求:
http://localhost/mysite/logincontroller/loginaction
由于远程系统以http://localhost 请求它,它无法连接到我的本地服务器。那么当从远程系统浏览器请求时,我将如何使用http://f94181a4.ngrok.io 发送 POST 请求。
http://f94181a4.ngrok.io/mysite/logincontroller/loginaction
【问题讨论】:
我不熟悉 ngrok,但我想这是一个base_url
问题。在 ngrok 中,如果你 <?php echo "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; ?>
它会给你 http://f94181a4.ngrok.io
吗?如果是这样,您可能会切换出该 php 行的静态基本 url
您可能忘记将“base_url”配置设置为新配置。
@Alex 我不确定我需要在哪里添加那段代码。但是我尝试在 loginView 上添加。它给了f94181a4.ngrok.io。以及如何修改静态基本网址。截至目前,我没有设置任何 base_url 即 $config['base_url'] = '';
【参考方案1】:
您可能忘记设置“base_url”配置。
试着改成这个
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https" : "http";
$config['base_url'] = "$protocol://$_SERVER['HTTP_HOST']/mysite/";
【讨论】:
其实我现在还没有设置任何base_url,即$config['base_url'] = '';。当我按照您提供的方式设置它时,它会重定向到 XAMPP 仪表板。我还需要修改什么? @Angom 您必须在base_url
配置的末尾添加“mysite/”。以上是关于在 Codeigniter 中如何通过 ngrok 执行 POST 请求?的主要内容,如果未能解决你的问题,请参考以下文章
当 webhook 调用通过 MacOS 上的 ngrok 到达时如何让 Xdebug 连接