2011-06-28 7 views

答えて

0

エラーを生成するJS関数があります。それは

var checkState = function(xmlhttp, callback) { 
//document.write(xmlhttp.readyState); 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
    // --> failed.html:46Uncaught TypeError: Cannot read property 'readyState' of undefined 
    callback(); 
    } else { 
    // Check back again 1 sec later 
    setTimeout(checkState, 1000); 
    } 
}; 

はなぜdocument.write(xmlhttp.readyState);がコメントアウトされている変数「のreadyState」を見つけることができませんか?バグかもしれない。

+0

普通のJavaのようにこのエラーを "試して捕まえる"方法があります。ちょうど "setTimeout(checkState 、1000); "待って、何もしない? =) – Adam

+0

はい、try/catchを適用するか、 'if(xmlhttp.readyState){...}'のような変数をチェックすることもできます。 –

0

なぜjQueryをロードし、そのajaxメソッドを使用しないのか分かりません。

ajaxまたは$.getJSONのいずれかを使用して、必要な処理を行うことができます。

私の推測では、コードの問題は、おそらくparsers.jsonがキャッシュされているときに、onreadystatechangeが非常に早く起きてしまうことです。

+0

あなたは私にそれを打つ! – ianbarker

+0

私はそれが起こったときに私は嫌い – locrizak

0

AJAXの機能を使用する場合は、jQueryを使用することをお勧めします。AJAXリクエストを作成するのがはるかに簡単で安定した方法です。

+0

私は知っているが、これはオペラでは動作しませんでしたので、私はそれを放棄した=) – Adam

+0

うーん、それは奇妙です。たぶんあなたはバグレポートをjQueryに提出する必要がありますhttp://bugs.jquery.com/newticket – ianbarker

関連する問題