我目前正在编写一个应用程序来验证来自管理员的表单数据。
据我所知,我有两个选择:
对同一网址的GET和POST请求
GET /admin/category/new
提供HTML表单以创建新类别
POST /admin/category/new
,如果有效,它只会重新加载HTML表单
提交数据和相关错误,直到通过验证。但是,如果用户刷新,浏览器会要求他们重新发送数据。
获取并发布到不同的RESTful网址
GET /admin/category/new
提供HTML表单以创建新类别
POST /admin/category
也可以处理PUT
,DELETE
请求。如果验证失败并且用户被重定向回GET /admin/category/new
,是否可以在会话闪存中同时保留错误和先前的输入?如果用户在多个浏览器窗口中提交多个编辑,会发生什么。如何确保先前的输入附加到正确的表单。
我问的主要原因是,当我在Magento或WordPress中更新多个项目时,多个Flash消息队列在一个窗口中与其他Windows更新相关。那么哪个选项最好?或者最容易维护?
答案 0 :(得分:0)
我建议使用 POST-redirect-GET 设计模式。
POST-Redirect-GET或GET-After-POST是一些Web应用程序使用的设计模式,其中Web服务器在Web服务器完成HTTP POST请求处理后立即将Web浏览器重定向到页面。通过让用户刷新页面或浏览页面而不重新提交表单,这可以提高用户提交表单后的可用性。
我个人认为这会导致代码更清晰,更易于维护。