我想重定向到一个页面(例如,error.php),具体取决于我网站中表单中的信息.我设法记录这样的错误:
if ($date > $curdate) {
return $response
->withStatus(406)
->withHeader('Content-Type', 'text/html')
->write('You can\'t select dates in the future!');
}
我该怎么做才能将您发送到具有该错误的页面,而不是在网络选项卡中记录/请求它?
现在我明白了:
Request URL:http://raspberrypi/chartAPI/api/{id}/{date1}/{date2}
Request Method:POST
Status Code:406 Not Acceptable
Remote Address:192.168.0.80:80
Referrer Policy:no-referrer-when-downgrade
这几乎按预期工作.我想要做的是将它发送到“http://raspberrypi/chartAPI/error/406”(例如),并将内容显示在名为406.php(或error406.php,或error.php或任何调用它)的文件中.
我设法做了一些事情:
return $response->withRedirect("error.php");
但我明白了:
Request URL:http://raspberrypi/chartAPI/api/{id}/{date1}/error.php
Request Method:GET
Status Code:405 Method Not Allowed
而苗条抛出这个错误:
Method not allowed. Must be one of: POST
为什么删除{date2}?为什么要求POST方法呢?
这个问题是this one的延续,但是由于这个网站处理这些“旧”问题的方式,我被推倒了,不管我放了多少编辑,它都不再受到任何关注.
解决方法:
使用withRedirect时,请使用路由URL而不是文件进行浏览
错误是关于使用GET方法路由需要POST
我认为这是因为您使用文件重定向到,然后该方法将是仅GET而不是POST或其他类似浏览器
我不知道为什么你在URL中传递参数时使用POST?