XMLHttpRequestオブジェクトのプロパティとメソッド

2816 ワード

ajaxの不足
 
1.XMLHttpRequestオブジェクトに対する各ブラウザのサポート不足(互換性の問題)
2.ブラウザの前進、後退機能を破壊する.
3.検索エンジンのサポートが不足しています.
4.デバッグツールのサポートが不足しています.
 
 
XMLHttpRequestオブジェクトのプロパティとメソッド
1.readyStateプロパティ
ステータス:0は初期化されていません.
1は送信の準備をします.
2送信されましたが、まだ応答がありません.
3受入中
4受信完了
2.responseText属性
クライアントが受信したHTTP応答を含むテキストコンテンツ.
readyState=4の場合、responseTextには完全な応答情報が含まれます.
readyState=3の場合、responseTextには不完全な応答情報が含まれます.
readyState<3の場合、responseTextは空の文字列です.
 
3.responseXMLプロパティ
readyState=4であり、応答ヘッダのContent-TypeのMIMEタイプがXML(text/xmlまたはアプリケーション/xml)である場合、この属性は値があり、XMLドキュメントとして解析される.
その他のケースはnullであり、返送されたXMLドキュメントが不良または未完了の応答返送を含む.
 
4.status及びstatusText属性(http状態コード及びコードテキストを説明する)
readyState>2でなければアクセスできません.そうしないと、例外が発生します.
5.onreadystatechangeイベント
readyStateプロパティが変更されると、コールバック関数をトリガーするイベントがトリガーされます.
 
6.openメソッド
Open(method,uri,async,username,password)は初期化作業に用いられる
戻り値:send()メソッドを含むオブジェクトを取得します.
method:必須です.GET,POST,PUT…などのHTTPメソッドを指定します.規定通りに大文字でなければなりません.
uri:サーバに対する対応するURIの送信を要求する.自動的に絶対アドレスに解析されます.
async:リクエストが非同期かどうか、デフォルトはtrueです.
Openを呼び出すとreadystateステータスは1になります.
 
7.sendメソッド
Openメソッドを呼び出すとsend()メソッドを呼び出してリクエストを送信できます.
Openでasync=trueの場合、send()メソッドが呼び出されるとすぐに返されます.そうしないと、リクエストが返されるまで中断されます.
send(data)
data:オプションです.ここに疑問があります.
 
8.abort()メソッド
この方法は、HttpRequestリクエストまたはHttpResponseの受信を一時停止し、XMLHttpRequestのステータスを初期化に設定することができる.
 
 
9.setRequestHeader(header,value)メソッド
この方法は、リクエストのヘッダ情報を設定するために使用されます.Open()を呼び出した後にこのメソッドを呼び出します.そうでないと異常が発生します.
10.getResponseHeader()メソッド
readystate>2の場合、この方法は応答のヘッダ情報を取得するために使用される.そうでなければ、空の文字列が返されます.
getAllResponseHeaders()メソッドは、すべてのHttpResponseヘッダ情報を返します.
 
<script type="javascript/text">
var xmlHttp
//    IE
if(window.ActiveXObject){
  try{
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(e){
   xmlHttp=false;
   }
}
else{
   try{
    xmlHttp=new XMLHttpRequest();
}catch(e){
    xmlHttp=false;
}
}

if(xmlHttp.readyState==4||xmlHttp.readyState==0){
   xmlHttp.open("GET", "test.php?"content="+content,true);
   //      
   xmlHttp.onreadystatechange=recall();
   xmlHttp.send(null);
}

function recall(){
 if(xmlHttp.readyState==4){
   if(xmlHttp.status==200){
    xmlResponse = xmlHttp.responseXML;
    //xml  
    myXml = xmlResponse.documnetElement;
    content = myXml.firstChild.data;
    //    
   }
}else{
  alert(xmlHttp.statusText);
}
}


</script>