Можете ли вы сделать запрос HTTP PATCH из Javascript?

Я работаю с API, который требует от меня сделать HTTP-запрос PATCH как часть URI, возможно ли это сделать из Javascript, в моих исследованиях показано, что я могу выполнять только POST, GET, DELETE и PUT. Разрешено ли PATCH?

Спасибо,

Ответ 1

Я не уверен, что вы подразумеваете под запросом "PATCH", но это кажется возможным (по крайней мере, в Firefox 6 и Chromium 12). Согласно исходный код Mozilla, существует только ограничение запросов TRACE и TRACK.

Быстрый тест:

<!-- test.html -->
<script>
var x=new XMLHttpRequest();
x.open("patch", "/");
x.send(null);
</script>

Любой веб-сервер может использоваться, но я выбираю для модуля Python SimpleHTTPServer.

$ ls
test.html
$ python -m SimpleHTTPServer
localhost - - [21/Sep/2011 17:32:11] "GET /test.html HTTP/1.1" 200 -
localhost - - [21/Sep/2011 17:32:11] code 501, message Unsupported method ('patch')
localhost - - [21/Sep/2011 17:32:11] "patch / HTTP/1.1" 501 -

Итак, пока сервер поддерживает этот метод, запрос передается.

Ответ 2

По некоторым исследованиям метод PATCH кажется новым (march 2010 http://tools.ietf.org/html/rfc5789), поэтому, если вы попытаетесь определить PATCH на XMLHttpRequest он может работать, но только на самых последних версиях современных браузеров. Пока не найден список поддерживаемых браузеров.