Rfc2616 列出了除 GET 和 POST 之外的许多方法,例如 DELETE、PUT 等。不过,html 表单中的方法字段似乎只允许指定 GET 或 POST。
是否可以在使用不是 GET 或 POST 的请求方法的 html 页面中创建链接或表单?
Rfc2616 列出了除 GET 和 POST 之外的许多方法,例如 DELETE、PUT 等。不过,html 表单中的方法字段似乎只允许指定 GET 或 POST。
是否可以在使用不是 GET 或 POST 的请求方法的 html 页面中创建链接或表单?
试图为在前端使用 Angular 的 Rails 应用程序解决这个问题;这些似乎适用于该环境:
<a data-confirm="Are you sure?" data-method="delete" href="/link-to-resource" rel="nofollow">Delete</a>
编辑:只是为了给大家一个提示,我认为你仍然需要有 jQuery 才能工作。我删除了 jQuery,它停止了工作;我把它放回去,它开始工作了。
您当然不能创建使用除GET
. 自从 HTML 出现以来,链接就意味着是幂等的并且没有副作用。
对于表单和XMLHTTPRequests
,Caps 的链接是查看的地方:PUT、DELETE、HEAD 等方法在大多数 Web 浏览器中都可用吗?.
默认情况下,不是没有办法做到这一点。链接总是执行 GET,表单可以使用 GET 或 POST。
也就是说,使用一点 JavaScript,这是可能的。例如,Rails 带有帮助器,它们将向data-method
链接添加属性。_method
Rails-UJS 是一个 jQuery 库,它将透明地拦截对这些链接的点击,并使用用于覆盖普通 HTTP 方法的参数触发表单提交。最后,Rack 将拦截带有_method
参数的请求,并用_method
.
其他框架无疑也遵循类似的模式。
如果您想了解更多细节,我已经解释了Rails、Rails-UJS 和 Rack如何协同工作来提供此功能。
很高兴知道您的库是如何工作的。
无法使用删除方法创建链接或表单。
许多 Web 框架创建了一个名为“_method”的隐藏输入来处理 PUT 和 DELETE。
我创建了一个插件,用于自动将链接转换为表单:RestfulizerJs
@Ifnot 插件很棒,但我创建了一个基于$.ajax
函数而不是附加hidden
表单的插件!这是一个DELETE
请求的简单示例
HTML
<button class="delete" data-target="http://example.com/post/post-id/" data-method="DELETE" data-disabled="true">Delete Article</button>
JavaScript
$(".delete").restintag(optionsObj, function(data) {
console.log(data);
},
function(error) {
console.log(error);
});
只需添加一个数据方法属性,<a data-method='put' href='whatever'>link</a>