- ベストアンサー
XMLHttpRequestのopenとsend
XMLHttpRequestのメソッドにopenとsendがありますが、平たくいいますと、どういったことでしょうか? 下記のサイトを見ましたが、よくわかりませんでした。 http://ponpon-village.net/ajax/xmlhttp.htm#Xmlhttp_Reference よろしくお願いいたします。
- みんなの回答 (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>
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
open ではサーバと接続を行います。 send ではopenで接続したサーバにリクエストを送信します。 openだけではサーバーとの接続は確立されますが、リクエストを送っていないためサーバーはリクエスト内容が送られてくるのを待ってます。 sendでリクエスト内容を送信するので、サーバはリクエスト内容に基づいた応答を返してくれます。
お礼
ご回答ありがとうございます!!勉強になります!!
お礼
ご回答ありがとうございます!!勉強になります!!