カテゴリー
オライリーJavaScript

リクエストの指定

XMLHttpRequestオブジェクトを生成した後、次にすることをは、 XMLHttpRequestオブジェクトのopen()メソッドを呼び出す。 request.open("GET", //GETリクエストを開始する "data.csv"); //このURLのコンテンツを取得するため open()メソッドの1番目の引数には、HTTPメソッドを指定する。 HTTPプロトコルと一致するように、大文字で指定するのが普通。 GETメソッド URLでリクエストするリソースをすべて表せて、リクエストによりサーバ側に副作用がなく、 サーバのレスポンスがキャッシュ可能であればGETリクエストが適切 POSTメソッド HTMLフォームで使われるのが普通 リクエストボディに追加データ(フォームデータ)が含まれる。 このデータは普通はサーバ上のデータベースに格納される。 これが副作用。 同じURLに対して繰り返しPOSTリクエストを送信したときに、サーバのレスポンスが異なる場合もある。 また、POSTメソッドを使ったリクエストはキャッシュされない。 DELETE、HEAD、OPTIONS、PUTメソッドも使える。 CONNECT、TRACE、TRACKメソッドは、セキュリティ上の問題により、明示的に禁止されている。 open()メソッドの2番目の引数には、リクエストの送信先となるURLを指定する。 相対URLを指定した場合は、open()メソッドを呼び出したスクリプトを含むドキュメントからの相対位置になる。 同一出身ポリシー リクエストヘッダの設定 POSTリクエストでは、Content-Typeを指定して、リクエストボディのMIMEタイプを指定する必要がある。 request.setRequestHeader("Content-Type", "text/plain"); Content-Length,Date,Referer,User-Agentヘッダなどは、設定不可 ユーザ名とパスワードで保護されたURLをリクエストする場合は、open()メソッドの4番目と5番目の引数として指定する リクエストボディの設定 サーバーにリクエストを送信する。 request.send(null); GETリクエストはボディを持たないので、引数としてnullまたは省略する。 POSTリクエストはボディを持つ。 setRequestHeader()で指定した、Content-Typeと一致するボディを引数として指定する。 send()メソッドはリクエストの尊信処理を開始したあと、すぐに戻ってくる。 たいてい、HTTPレスポンスは非同期で処理する。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です