XMLHttpRequest は初めてで、ここにいくつかの混乱があります。
xmlhttprequest で post メソッドを使用するときにコンテンツ タイプを設定する必要があるのはなぜですか?
XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
デフォルト値 application/x-www-form-urlencoded はすでにありませんか?
XMLHttpRequest は初めてで、ここにいくつかの混乱があります。
xmlhttprequest で post メソッドを使用するときにコンテンツ タイプを設定する必要があるのはなぜですか?
XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
デフォルト値 application/x-www-form-urlencoded はすでにありませんか?
xmlhttprequest で post メソッドを使用するときにコンテンツ タイプを設定する必要があるのはなぜですか?
XHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HTTP/POST は、AJAX 経由で (または他の手段で) HTTP/POST を実行するときに、その特定のコンテンツ タイプを要求しません。それはあなた次第です(そしてそれを処理するサーバー側プログラム次第です)。明示的に設定する必要がある理由については、2 番目のセクションを参照してください。
多くの場合、フォームをシリアル化し (パーセンタイル エンコード -- a=b&c=d 形式)、サーバーに送信します。この形式はapplication/x-www-form-urlencoded
. XML を送信する場合は を使用application/xml
し、JSON には を使用application/json
します。
GET リクエストに関しては、本文がないため、実際には content-type ヘッダーは必要ありません。
デフォルト値 application/x-www-form-urlencoded はすでにありませんか?
ここで、デフォルトの content-type ヘッダーをざっと調べてみました。何も見つかりませんでした。しかし、Chrome のコンソールから HTTP/POST AJAX リクエストを実行しようとすると、Chrome のデフォルトがapplication/xml
.
ちょっとしたアドバイスです。明示的に述べられているか、標準の一部である場合を除いて、デフォルトの動作に決して依存しないでください。コンテンツ タイプを明示的に設定しないのはなぜですか?