アヤックスは共通のプロパティ、イベント、メソッド敏感な問題をオブジェクト

ここではいくつかの共通のプロパティ、イベント、およびメソッドは、Ajaxオブジェクトです
  、標準の属性AjaxオブジェクトはreadyStateの、ステータスを持っている)1 responseText、responseXMLを

  IEブラウザ、そこresponseBody、2進データストリームのために、非標準のオブジェクトのプロパティAJAX 2) 。ゴミ問題へのブラウザの互換性を考慮していない場合、このプロパティは+ VBScriptの良いソリューションを提供します。  
基本的なコードのVisual
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
【サイズ= 1EM] 機能  【サイズ= 1EM] Bytes2BStr(VIN) [サイズ= 1EM] '二进制转字串
【サイズ= 1EM]      [サイズ= 1EM] strreturn =  [サイズ= 1EM] ""
[サイズ= 1EM]は      [ iはLENB(VIN)に1を=ためサイズ= 1EM]
[サイズ= 1EM]      [サイズ= 1EM] thischarcode = ASCB(MIDB(VIN、I、1))
[サイズ= 1EM]      [サイズ= 1EM] thischarcode場合<&H80次に
【サイズ= 1EM]         [サイズ= 1EM] strreturn = strreturn&CHR(thischarcode)
[サイズ= 1EM]      [サイズ= 1EM]他
【サイズ= 1EM]         [サイズ= 1EM] nextcharcode = ASCB(MIDB(VIN、I + 1,1))
[サイズ= 1EM]         [サイズ= 1EM] strreturn = strreturn&CHR(CLNG(thischarcode)*&H100 + CINT(nextcharcode))
[サイズ= 1EM]         【サイズ= 1EM] I = I + 1
[サイズ= 1EM]      [サイズ= 1EM] END IF
[サイズ= 1EM]      [サイズ= 1EM]次の
[サイズ= 1EM]      [サイズ= 1EM] Bytes2BStr = strreturn
[サイズ= 1EM ] 終了  [サイズ= 1EM] 機能
 





  3)onreadystatechangeにイベント、状態遷移関数

  に出願POSTメソッドが指定された場合4)方法setRequestHeader、オープン、送信は、ヘッドに応じて設定するため、コンテンツタイプアプリケーション/ X-WWW-フォーム-設定する必要があり 、URLエンコードを応答ヘッダが提供されていない場合、要求された動的ページは、取得した値のキーと値のペアの形で使用することができないが、バイナリストリームで送信されたデータから生成することができます。
リファレンスは、
ポストとして指定されたが、コンテンツタイプを設定するか、または随時提出するキーを取得する方法を指定しませんでしたAJAX

  の問題を起こしやすいエラー
1)のXMLHttpRequestを使用するためのオブジェクトIE7 +を含め、作成、プロパティは厳密に大文字と小文字が区別され、サイズに注意を払う必要があります質問に書かれた、または小文字を区別しない、プロパティ値が定義されていません。readyStateの書かれたreadyStateのとおり、responseTextはresponsetextを書かれました。

それは最初ActiveXObjectの判定された場合2)IEブラウザについては、次にActiveXObjectのXHRオブジェクトを作成して実行するACXのXHRオブジェクト、プロパティ、イベントを使用して作成され、方法は、大文字小文字を区別している

3)のXMLHttpRequest作成を使用して、onreadystatechangeに必ずしもすべて小文字、またはカスタムプロパティの割り当て対象XHRはなく、実際の状態遷移関数と等価です。だから、コールバックを実行することはありません。IEは大文字と小文字を区別しない、作成したXHR ActiveXObjectのオブジェクトを使用するために

はXMLHttpRequestを作成したとき4)2,3の点で、この方法は、大文字と小文字を区別しなければならず、いかなる方法を示唆していない、間違って行くべきではありません呼び出します。IEは大文字と小文字を区別しないActiveXObjectを作成するために使用しています。
  特別重点がsetRequestHeaderメソッドを実行するために、openメソッドを呼び出してください、あなたは間違って行くべきではない、です。

  コードの推奨手書きアヤックス
1)は、取得するための要求は、いくつかの対応するデータ形式を生成するために、コンテンツタイプのいくつかを確認することである場合を除き、コンテンツタイプを提供する必要が提出されていません。指定されたコンテンツタイプである場合、Webサービスasp.netチェックコンテンツタイプは、文字に対応するアプリケーション/ JSON、JSON形式が生成されます。
参考WebServiceのJSON

データが存在しない場合は取得するために提出する2)は、sendメソッドを呼び出すときには、好ましくは、nullを引数として追加されます。xhr.send(NULL);

3)ポストへの提出は、openメソッドを呼び出した後、アプリケーション/ X-form-urlencodedで-WWW-にコンテンツタイプを設定するsetRequestHeaderメソッドを呼び出すことを忘れてはならない

responseText、のresponseXMLとresponseBodyでの使用4) [IEのみ]、ときstatusプロパティ、あなたは、readyStateの== 4に、ステータス== 200 [状態]テストまたはオンライン状態のステータス== 0 [テスト]ローカル再利用必要な

JavaScriptコードを
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
[size=1em]       [size=1em]var  [size=1em]xhr = window.XMLHttpRequest ?  [size=1em]new  [size=1em]XMLHttpRequest() :  [size=1em]new  [size=1em]ActiveXObject( [size=1em]"microsft.xmlhttp" [size=1em]);
[size=1em]       [size=1em]xhr.open( [size=1em]'get' [size=1em],  [size=1em]'index.html' [size=1em],  [size=1em]true [size=1em]);
[size=1em]       [size=1em]xhr.onreadystatechange =  [size=1em]function  [size=1em]() {
[size=1em]           [size=1em]if  [size=1em](4 == xhr.readyState) {
[size=1em]               [size=1em]if  [size=1em](200 == xhr.status || 0 == xhr.status) {
[size=1em]                   [size=1em]//=========正常返回后的处理代码
[size=1em]               [size=1em]}
[size=1em]               [size=1em]else  [size=1em]alert( [size=1em]'动态页出问题了~~' [size=1em]);
[size=1em]           [size=1em]}
[size=1em]       [size=1em]}
[size=1em]       [size=1em]xhr.send( [size=1em]null [size=1em]);
 






実行が非同期である場合は5)、場合のreadyStateのresponseXMLまたは4位置プロパティresponseTextを状態遷移関数を追加し、使用することが必要です。
同期が実行された場合は、状態遷移関数onreadystatechangeに追加することなく、直接、またはresponseTextのresponseXMLプロパティ、送信することができます後。同期はおそらくスマンブラウザ仮死状態を引き起こすことがある場合でも、ユーザ体験は良いではありません。
公開された965元の記事 ウォン称賛11 ビュー30000 +

おすすめ

転載: blog.csdn.net/xiaoyaGrace/article/details/105285396