2016-10-31 12 views
1

XMLHttpRequestオブジェクトではあまり役に立ちませんでした。JavaScriptです。私はそれが初めてです。私はjQueryAjaxコールをたくさんやっていますが、XMLHttpRequestオブジェクトでは詳細な作業を行っていません。XMLHttpRequestを使用して無効なURLによってスローされたエラーを捕捉する方法

私は、このオブジェクトを使っていくつかのサンプルコードを書いている本を使って作業しています。

ここでは、エラーを処理しようとするときに本が使用するいくつかのコードを示します。間違ったURLによってスローされたエラーを捕まえることになっています。しかし、私は、それはそれをcatch clauseを行くために取得することはできません。

var httpRequest = new XMLHttpRequest(); 
try 
{ 
    httpRequest.open("GET", "http://"); 
    httpRequest.send(); 
} 
catch (error) 
{ 
    alert("in catch clause"); 
} 

私も、無効なURLを試してみましたが、まだcatch clauseに入ることを望んでいない:

httpRequest.open("GET", "gttp://"); 

はそれがあるためですURLは例外をスローしていない有効なURLですか?

+0

未定義の変数 'httpRequest.open(" GET "、not_defined);' –

+0

を渡したときにエラーがキャッチされました 'httpRequest.open(" GET "、false);' http:// OS/falseで、nullおよび未定義で同じです。 –

答えて

0

var httpRequest = new XMLHttpRequest(); 
 
try 
 
{ 
 
    httpRequest.open("GET", "http://",false); 
 
    httpRequest.send(); 
 
} 
 
catch (error) 
 
{ \t 
 
\t 
 
    alert("in catch clause"); 
 
}

デフォルトopen方法は非同期であり、try/catchブロックでキャッチすることができません。これは、openメソッドが完了する前でもコード全体が実行されるためです。 openメソッドは、asyncというブール値の別のオプションパラメータを持っています。デフォルトはtrueです。 falseに設定すると、ジョブが完了します。この値がfalseの場合、応答が受信されるまでsend()メソッドは返されません。

関連する問題