我有一个PHP MVC Web App和Apache mod_rewrite规则已经正常工作,但是当我使用 method =“get”创建表单时,提交的URL看起来像
contact/submit?a=b&c=d
我希望我的表单提交到
contact/submit/a/b/c/d
发布和获取表单在服务器端都可以正常工作,但是当使用post方法时,后退按钮总是要求重新发布表单值,而且我希望URL中的字符串用于SEO。我认为JQuery可能会让我拦截表单提交事件并动态刷新到url,但似乎必须有一种更简单的方法来实现它,我不知道。
答案 0 :(得分:0)
您可以使用Spring Web Flow使用的POST-> REDIRECT-> GET模式。这将允许您根据需要发布,然后重定向到联系/提交/ a / b / c / d。它还可以通过后退按钮来解决问题,询问您是否要重新提交表单数据。请参阅此相关article。
答案 1 :(得分:0)
GET方法使用标准查询字符串参数通过HTTP GET请求传递表单数据。
HTTP GET请求无意修改服务器上的任何数据。 POST用于修改服务器上的数据。
可以缓存GET。 POST不会。
/ a / b / c / d不是传递数据的标准格式(如RFC)。但是,对于请求发布的数据或URL,这已经变得很流行。
因此,如果您要更新服务器数据,只需使用POST - > REDIRECT - > / A / B / C / d
如果您只是从服务器读取数据,那么您将需要使用一些Javascript来读取您的表单值并构造一个查询字符串,然后使用window.location = ...
玩得开心!