我正在使用一个API,它要求我将HTTP PATCH请求作为URI的一部分,这是否可以通过Javascript完成,我的研究显示我只能执行POST,GET,DELETE和PUT。是否允许PATCH?你可以从Javascript发出HTTP PATCH请求吗?
谢谢
我正在使用一个API,它要求我将HTTP PATCH请求作为URI的一部分,这是否可以通过Javascript完成,我的研究显示我只能执行POST,GET,DELETE和PUT。是否允许PATCH?你可以从Javascript发出HTTP PATCH请求吗?
谢谢
我不知道你到底是由一个“补丁”的要求意味着,但它似乎是可能的(至少在Firefox 6和铬12)。根据Mozilla source code,只有TRACE
和TRACK
请求的限制。
快速测试用例:
<!-- test.html -->
<script>
var x=new XMLHttpRequest();
x.open("patch", "/");
x.send(null);
</script>
任何Web服务器都可以使用,但我选择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 -
所以,只要服务器支持该方法,请求就会通过。
是的。有几个传统浏览器可能会遇到“扩展”方法的问题;微软在IE8或IE9中解决了这个问题。在较老的IE中,可以回退到没有该限制的XHR ActiveX对象。 –
正如一些研究PATCH
方法似乎是新的(2010年3月http://tools.ietf.org/html/rfc5789),所以如果你试图在一个XMLHttpRequest定义PATCH
它可以工作,但只能在非常现代的浏览器最新版本。尚未找到支持的浏览器列表。
不正确。浏览器不需要“知道”一种方法,以便在XmlHttpRequest中支持它。 –
@JulianReschke IE8中的XHR(不是activeX flavor)的实现不支持PATCH方法。 – Knu
大多数浏览器将HTTP方法限制为POST/GET,对其他方法的支持是不完整的,例如IE9会执行删除,但是我没有在每个浏览器中看到它。为了获得最佳效果,请重新说明有关HTTP方法的浏览器支持的问题。 – Incognito
对POST/GET的浏览器限制适用于HTML表单提交,而不适用于XmlHttpRequest。 –