ant*_*yer 2 rest scala playframework-2.0
我正在使用Play 2.0构建应用程序.
只要Play表单生成器不会生成本机http"删除"请求方法,它应该替换为"Get"或"Post".
@form(routes.Application.delete(id), 'class -> "topRight") {
<input type="submit" value="Delete this computer" class="btn danger">
}
Run Code Online (Sandbox Code Playgroud)
根据Play示例,"Post"应该用于"删除"目的.虽然使用"Get"非常舒服,因为表单可以用简单的链接替换(特别是在单个页面上有这些链接的列表)
那么有什么理由使用POST来模拟DELETE吗?
Sus*_*ter 10
使用的原因POST进行模拟DELETE ,而不是 GET因为一些HTTP动词(又名方法)被认为是由HTTP规范安全.这些方法是HEAD,GET,OPTIONS和TRACE.这意味着在使用这些HTTP方法发出请求时不应该有应用程序状态的任何副作用.记录,缓存或计数器增量通常不被视为应用程序状态修改,除非它是应用程序域的一部分.
之所以用POST了仿真DELETE,而不是直接使用要求DELETE在网络形式的,因为一些浏览器不支持DELETE直接.许多使用帮助程序生成表单标记的Web框架(如Play和Rails)使用您引用的技巧将请求映射到代码中的相应REST-ish操作.有关详细信息,请参阅浏览器中的HTTP方法支持.有关此主题的更多信息,请参阅此SO问题.根据W3C针对HTML5的最新候选推荐,HTML5 FORM元素不支持method除GET或POST之外的属性的值.FORMHTML 4.01中的元素也是如此.
| 归档时间: |
|
| 查看次数: |
3068 次 |
| 最近记录: |