• 締切済み

Ajaxのsendメソッドについて

Webプログラミング初心者です。 Ajaxにおいて、XMLHttpRequestオブジェクトのプロパティであるsendおよびopenについてお聞きします、GETを使う時にopenメソッドの引数に送信すべき情報を「?キー名=値」の形式でURLの末尾に指定するのは理解できるのですが(結果として表示されるページのURLにその値が含まれているので。)、なぜPOSTを使う時にsendメソッドの引数に「?キー名=値」の情報を入れる必要があるのかわかりません。 GETの時とは違い「?キー名=値」の情報の使い道がない気がするのですが…

みんなの回答

回答No.2

POSTメソッドでHTTP通信を行い、ウェブサーバから動的な情報を受け取るのに必要です。 動的な情報を受け取る必要がなければ、あなたのいうとおり、入力する必要がありません。なので、XMLHttpRequest.send(null)としておくのがいいでしょう。 通常のウェブページで、メソッド「GET」や「POST」を使って、ウェブサーバにデータを渡し、CGIを動作させて、動的な出力を得ることができるのはわかりますよね? XMLHttpRequestは、画面遷移をせずにウェブサーバと通信することができるという点がいつもの通信と異なっているだけで、通信そのものは、これとおんなじです。 通常の方法なら、GETならURL末尾にクエリをくっつけて、POSTなら(X)HTMLのFORM要素の子要素を使います(INPUT要素とかTEXTAREA要素とか)。 XMLHttpRequest.open()のURL末尾に情報をくっつけるというのは、通常の方法のGETに相当し、XMLHttpRequest.send()の引数に情報を与えるというのが、POSTにあたっていると考えてください。FORM要素の役割を代行しているとイメージしてもらえばいいと思います。 どうでしょうか?

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

> GETの時とは違い「?キー名=値」の情報の使い道がない気がするのですが… なぜそう思うの? そこで指定したデータはサーバーに送られるから サーバー側で使える(参照できる)んだよ?

関連するQ&A