2011-09-21 19 views
10

URIの一部としてHTTP PATCHリクエストを作成する必要があるAPIを使用しています。これはJavascriptから行うことが可能ですが、私の研究ではPOST、GET、DELETE、およびPUTしか実行できないことが示されています。 PATCHは許可されていますか?JavascriptからHTTP PATCHリクエストを作成できますか?

は、私はあなたが正確に「PATCH」要求によって何を意味するかわからないんだけど、(少なくともFirefoxの6及びクロム12)が可能であると思われる、

+1

ほとんどのブラウザではHTTPメソッドがPOST/GETに制限されていますが、他のブラウザのサポートはうまくいきません。たとえば、IE9は削除を行います。最良の結果を得るには、HTTPメソッドのブラウザサポートについての質問を再入力してください。 – Incognito

+4

POST/GETに対するブラウザの制限は、XmlHttpRequestではなく、HTMLフォームの送信に適用されます。 –

答えて

2

、ありがとうございました。 Mozilla source codeによれば、TRACETRACK要求の制限のみがあります。

迅速なテストケース:

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

したがって、サーバーがメソッドをサポートしている限り、要求は成功します。

+1

真。 "拡張"メソッドに問題があるかもしれないいくつかのレガシーブラウザがあります。 MicrosoftはこれをIE8またはIE9で修正しました。古いIEでは、その制限がないXHR ActiveXオブジェクトにフォールバックすることができます。 –

-3

PATCH方法は、新しい(2010年3月http://tools.ietf.org/html/rfc5789)のようですいくつかの研究のように、あなたはそれが動作する可能性のXMLHttpRequestのが、唯一の近代的なブラウザの最新のリビジョンにPATCHを定義しようとした場合。まだサポートされているブラウザーリストが見つかりません。

+4

正しくない。ブラウザーは、XmlHttpRequestでメソッドをサポートするためにメソッドを「知る」必要はありません。 –

+0

@JulianReschke IE8でのXHR(ActiveXXフレーバではない)の実装は、PATCHメソッドをサポートしていません。 – Knu

関連する問題