Согласно документации jQuery, $.ajax()
поддерживает «другие методы HTTP-запроса, такие как PUT и DELETE, но они [не обязательно] поддерживаются всеми браузерами." [1]
Мне интересно, есть ли способ проверить, поддерживает ли браузер данный метод, например PATCH
, PUT
, DELETE
и т. Д. И аккуратно перейти на метод POST
с использованием $.ajaxPrefilter()
, если он не поддерживается? Или лучше просто всегда POST
из формы или вызова AJAX и использовать какой-либо другой контекст (например, _method
или X-заголовок, поддерживаемый сервером), чтобы указать предполагаемый метод, а не то, что фактически использовалось?
ОБНОВЛЕНИЕ. Похоже, что один из способов проверить, поддерживается ли конкретный тип запроса, - это сделать запрос, например
var x=new XMLHttpRequest();
x.open("patch", "/");
x.send(null);
Однако я бы хотел по возможности избегать запросов при определении поддержки конкретных типов запросов.
PATCH
, а старые - нет. Для таких браузеров было бы важно знать это и выполнять соответствующие действия. Отсюда вопрос: как можно обнаружить поддержку того или иного метода запроса? - person Sean Quinn   schedule 09.11.2013PATCH
), как упоминалось выше в моем редактировании, и выпадения несколькихtry/catch
операторов, что я не очень-то хотел делать, я надеялся, что может быть способ определения возможностей - что-то вроде:XMLHttpRequest.isMethodSupport('PATCH')
(Видел вашу правку, я тоже посмотрю на PROPGET, спасибо!) - person Sean Quinn   schedule 09.11.2013_method
или поддерживаемый подход X-заголовка и преобразовывать что-нибудь нестандартное. По крайней мере, это придаст целостность коду. Спасибо! :) - person Sean Quinn   schedule 09.11.2013