Ответ 1
Большинство браузеров ограничивают HTTP-методы GET/POST при применении к формам. Тем не менее, с запросами AJAX, если сервер поддержки может поддерживать метод, он будет работать.
Я работаю над некоторым приложением 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 имеет несколько значений...
Большинство браузеров ограничивают HTTP-методы GET/POST при применении к формам. Тем не менее, с запросами AJAX, если сервер поддержки может поддерживать метод, он будет работать.
Современные браузеры поддерживают PATCH (на самом деле с помощью $ajax вы можете использовать любой метод, если браузер не блокирует его). Ниже IE9 вам не повезло.
С FF, Chrome и Safari это не проблема, потому что те, которые начали автоматическое обновление несколько лет назад и более двух лет назад, прекратили блокировать методы, отличные от GET и POST.