От Express guide:
При использовании таких методов, как PUT с формой, мы можем использовать скрытый ввод имени _method, который может быть использован, чтобы изменить метод HTTP. Для этого нам сначала потребуется промежуточное ПО methodOverride, которое должно быть размещено ниже bodyParser, чтобы он мог использовать его req.body, содержащее значения формы.
Итак:
app.use(express.bodyParser());
app.use(express.methodOverride());
И в вашей форме:
<input type="hidden" name="_method" value="put">
Update: Как я понимаю новые комментарии от спрашивающего, nrph хочет способ представить форму с метод PUT
, используя ajax. Вот решение, использующее jQuery:
// Use this submit handler for all forms in document
$(document).on('submit', 'form', function(e) {
// Form being submitted
var form = e.currentTarget;
// Issue an ajax request
$.ajax({
url: form.action, // the forms 'action' attribute
type: 'PUT', // use 'PUT' (not supported in all browsers)
// Alt. the 'method' attribute (form.method)
data: $(form).serialize(), // Serialize the form's fields and values
success: function() {},
error: function() {}
});
// Prevent the browser from submitting the form
e.preventDefault();
});
Не созданы ли эти помеченные сопоставления для обработки в ajax? – nrph
Извините? Я не понимаю вопроса. –
В соответствии с этим комментарием http://stackoverflow.com/a/7257509/450441 большинство современных браузеров поддерживают PUT с XMLHttpRequest. Поэтому он дает представление о том, что, возможно, ajax должен быть наиболее очевидным вариантом для представления значений с помощью выражения. – nrph