我想重定向到一个页面(例如,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的延续,但是由于这个网站如何处理这些" old"问题,我被推倒了,不管我放了多少编辑,它都不再受到任何关注。
答案 0 :(得分:1)
当您使用withRedirect
时,使用路线网址而不是文件进行浏览
错误是关于使用路线需要POST的GET方法
我认为这是因为您使用文件重定向到,然后该方法将是仅GET而不是POST或其他类似浏览器
我不知道为什么在URL中传递参数时使用POST?!