0

私は現在、ユーザーが訪問するウェブページに関する情報を収集するGoogle Chrome拡張機能を開発中です。現在、私のプラグインは、2xx、3xx、4xx、5xxのステータスコードを処理できます。しかし、ウェブサイトが存在しないときも検出する必要があり、エラーコードERR_NAME_NOT_RESOLVEDが表示されます。どのように私はjavascriptでこれを行うのですか?私のXMLHttpRequestは存在しないサイトでも起動できないようです。これをどうやって解決するのですか?err_name_not_resolvedをjavascriptで検出する方法は?

+0

try {x = new XMLHttpRequest(); x.open( "http://dvcsdfsd.com")} catch(y){alert(y)} '... – dandavis

+0

サイトが存在しない場合404を返してはいけませんか?それは[DNSの問題](http://superuser.com/questions/719559/why-cant-chrome-load-a-web-page-err-name-not-resolved)でしょうか? – neilsimp1

+0

@ neilsimp1私は404を扱うことができます、私はDNSの問題について話しています。 –

答えて

0

のXMLHttpRequestのonreadystatechangeにリスナーが発射された2+回ここに存在しないサイトの0に等しいstatusプロパティを持つ既存のサイトと一度だけなので、このコードは私の作品:

function xhrGetStatus(url, callback) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('HEAD', url); 
    xhr.onreadystatechange = function(e) { 
     xhr.onreadystatechange = null; 
     callback({status: xhr.status, statusText: xhr.statusText}); 
    }; 
    xhr.send(); 
} 

xhrGetStatus('http://abc123.com', function(r) { 
    console.log(r.status ? r.status : 'No such site?'); 
}); 
+0

CORSヘッダーがサーバーの応答に存在しない場合はステータスが0になるため、ステータスが0で信頼性が低いと判断されます。 – jpro

関連する問題