Поддержка HTTP Patch XmlHttpRequest

Я работаю над некоторым приложением todo и хотел бы использовать метод HTTP PATCH для добавления и удаления todo, потому что это было бы семантически лучше, чем PUT.

В бэкэнд я использую express.js(node.js) и в front-end backbone.js(который использует jQuery для ajax).

Я уже пробовал, если он действительно работает в back-and front-end на моем локальном пакете разработки (Archlinux, Chromium 20, node.js 0.8, express 2.X), и он работал:

app.js

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

веб-консоль Chrome

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

Указан запрос, а также действия базы данных, где это возможно, без исключений.

Теперь я хотел бы узнать, как другие браузеры поддерживают метод patch. Я смотрел с помощью google, но трудно найти что-то, потому что PATCH имеет несколько значений...

Ответ 1

Большинство браузеров ограничивают HTTP-методы GET/POST при применении к формам. Тем не менее, с запросами AJAX, если сервер поддержки может поддерживать метод, он будет работать.

Ответ 2

Современные браузеры поддерживают PATCH (на самом деле с помощью $ajax вы можете использовать любой метод, если браузер не блокирует его). Ниже IE9 вам не повезло.

С FF, Chrome и Safari это не проблема, потому что те, которые начали автоматическое обновление несколько лет назад и более двух лет назад, прекратили блокировать методы, отличные от GET и POST.