15

我正在开发一些待办事项应用程序,并希望使用 HTTP 方法 PATCH 来添加和删除待办事项,因为这在语义上比 PUT 更好。

在后端,我使用 express.js (node.js) 和前端的主干.js(使用 jQuery 进行 ajax)。

我已经尝试过它是否真的在我的本地开发套件(Archlinux、Chromium 20、node.js 0.8、express 2.X)的后端和前端工作并且它有效:

应用程序.js

app.patch('/todo/:id', function(req, res){
    console.log('patch successfull');
}

铬网络控制台

$.ajax({ 
    url: '/messages/4ff13720f00e2e2c4b000006',
    type: 'PATCH',
    data: { body: 'that is a patched message' } 
});

提到了该请求,并且在可能的情况下还提到了数据库操作,无一例外。

我现在想知道其他浏览器如何支持补丁方法。我用谷歌查了一下,但很难找到东西,因为 PATCH 有多种含义......

4

2 回答 2

5

大多数浏览器在应用于表单时将 HTTP 方法限制为 GET/POST。但是,对于 AJAX 请求,只要后端服务器能够支持它就可以工作的方法。

于 2012-11-09T21:03:20.140 回答
2

现代浏览器确实支持 PATCH(事实上,使用 $ajax 你可以做任何你喜欢的方法,只要浏览器不阻止它)。在 IE9 以下,你就不走运了。

对于 FF、Chrome 和 Safari,这不是什么大问题,因为它们几年前就开始自动更新,两年多前它们停止了除 GET 和 POST 之外的阻止方法。

于 2013-10-25T16:44:48.007 回答