我正在使用一個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。 –