• ベストアンサー

XMLHttpRequestのopenとsend

XMLHttpRequestのメソッドにopenとsendがありますが、平たくいいますと、どういったことでしょうか? 下記のサイトを見ましたが、よくわかりませんでした。 http://ponpon-village.net/ajax/xmlhttp.htm#Xmlhttp_Reference よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • dscripty
  • ベストアンサー率51% (166/325)
回答No.2

MDN > Docs > DOM > XMLHttpRequest> open() https://developer.mozilla.org/ja/XMLHttpRequest#open%28%29 「リクエストを初期化します。」 Firefox では、初期化だけしかしないみたい。 MDN > Docs > DOM > XMLHttpRequest> send() https://developer.mozilla.org/ja/XMLHttpRequest#send%28%29 「リクエストを送信します。」 実際に、netstat コマンドで確認したけど、 open() だけでは、「ESTABLISHED」 にならなかった。 実際に試したコード。 ※↓のコードをちょっと変更しただけ。 https://developer.mozilla.org/ja/AJAX/Getting_Started [xhr.htm] <!DOCTYPE html> <html lang="ja"> <head>   <meta charset="UTF-8" />   <title>XMLHttpRequestのopenとsend</title> </head> <body> <h1>XMLHttpRequestのopenとsend</h1> <div> <span   style="cursor: pointer; text-decoration: underline"   onclick="makeRequest('xhr.htm')">     リクエストを実行 </span> </div> <script type="text/javascript" language="javascript">   function makeRequest(url) {     var httpRequest;     if (window.XMLHttpRequest) // Mozilla, Safari, ...       httpRequest = new XMLHttpRequest();     else if (window.ActiveXObject) { // IE       try {         httpRequest = new ActiveXObject("Msxml2.XMLHTTP");       } catch (e) {         try {           httpRequest = new ActiveXObject("Microsoft.XMLHTTP");         } catch (e) {}       }     }     if (!httpRequest) {       alert('中断 :( XMLHTTP インスタンスを生成できませんでした');       return false;     }     httpRequest.onreadystatechange = function() { alertContents(httpRequest); };     httpRequest.open('GET', url, true);     window.setTimeout(function () {       httpRequest.send('');     }, 10000);   }   function alertContents(httpRequest) {     if (httpRequest.readyState == 4) {       if (httpRequest.status == 200) {         alert(httpRequest.responseText);       } else {         alert('リクエストに問題が発生しました');       }     }   } </script> </body> </html>

mellow91
質問者

お礼

ご回答ありがとうございます!!勉強になります!!

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

open ではサーバと接続を行います。 send ではopenで接続したサーバにリクエストを送信します。 openだけではサーバーとの接続は確立されますが、リクエストを送っていないためサーバーはリクエスト内容が送られてくるのを待ってます。 sendでリクエスト内容を送信するので、サーバはリクエスト内容に基づいた応答を返してくれます。

mellow91
質問者

お礼

ご回答ありがとうございます!!勉強になります!!

関連するQ&A