【发布时间】:2015-12-26 06:57:26
【问题描述】:
<a rel="nofollow" data-method="delete" href="/users/sign_out">Sign Out</a>
阅读一些代码使用设计,我注意到sign_out链接有两个特殊属性
data-method="delete",不知这是否是html5中的标准属性?
【问题讨论】:
标签: ruby-on-rails html devise
<a rel="nofollow" data-method="delete" href="/users/sign_out">Sign Out</a>
阅读一些代码使用设计,我注意到sign_out链接有两个特殊属性
data-method="delete",不知这是否是html5中的标准属性?
【问题讨论】:
标签: ruby-on-rails html devise
它是 HTML5 custom data attribute。您的代码定义了一个名为method 的属性,其值为delete。
【讨论】:
Code Different 是对的,该代码是 HTML5 数据属性。不过它代表的是“method”,并不局限于HTML5——只是Rails采用了GET/POST和appends them to the request with jquery以外的方法:
它的工作方式是,当链接被激活时,[Rails]在文档中构造一个隐藏表单,其中“action”属性对应于链接的“href”值,方法对应于“data-method” " 值,并提交该表单。
对于非 Rails 后端的注意事项:因为使用 GET 和 POST 之外的 HTTP 方法提交表单并没有在浏览器中得到广泛支持,所有其他 HTTP 方法实际上都是通过 POST 发送的,并指明了预期的方法在“_method”参数中
HTTP 使用methods (calls them verbs) 为开发人员提供如何在后端管理请求的范围。这是 HTTP 的核心原则,REST 协议。
简而言之 - 尽管您要问的是 自定义 HTML5 数据属性,但底层功能存在于所有启用 HTTP 的前端中;只是您必须将方法附加到请求中(如本例所示),因为标准 HTML 完全不支持 PUT/PATCH/DELETE。
【讨论】: