2011-09-21 16 views
10

Estoy trabajando con una API que requiere que haga una solicitud HTTP PATCH como parte de la URI, ¿es posible hacerlo desde Javascript? Mi investigación muestra que solo puedo hacer POST, GET, DELETE y PUT. ¿Está permitido el PATCH?¿Se puede hacer una solicitud HTTP PATCH desde Javascript?

Gracias,

+1

La mayoría de los navegadores limitan los métodos HTTP a POST/GET, el soporte para otros es desigual, por ejemplo IE9 lo hace, pero no lo he visto en todos los navegadores. Para obtener los mejores resultados, vuelva a formular su pregunta sobre la compatibilidad del navegador con los métodos HTTP. – Incognito

+4

Los límites del navegador para POST/GET se aplican al envío de formularios HTML, no a XmlHttpRequest. –

Respuesta

2

no estoy seguro de lo que quiere decir exactamente por una petición de "parche", pero parece ser posible (al menos en Firefox 6 y cromo 12). De acuerdo con Mozilla source code, solo existe una limitación de TRACE y TRACK solicitudes.

Un caso de prueba rápida:

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

Cualquier servidor web puede ser utilizado, pero me eligen para el módulo SimpleHTTPServer de Python.

$ 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 - 

Por lo tanto, siempre que el servidor admita el método, se pasará la solicitud.

+1

Es cierto. Hay algunos navegadores heredados que pueden tener problemas con los métodos de "extensión"; Microsoft arregló esto en IE8 o en IE9. En IE más antiguos, puede recurrir al objeto XHR ActiveX que no tiene esa limitación. –

-3

A partir de una investigación el método PATCH parece ser nueva (marzo de 2010 http://tools.ietf.org/html/rfc5789) por lo que si se intenta definir PATCH en una XMLHttpRequest que podría funcionar, pero sólo en muy últimas revisiones de los navegadores modernos. Aún no se ha encontrado una lista de navegador admitida.

+4

No es correcto. Un navegador no necesita "conocer" un método para soportarlo en XmlHttpRequest. –

+0

@JulianReschke la implementación de XHR (no el sabor activoX) en IE8 no admite el método PATCH. – Knu

Cuestiones relacionadas