私はPython-FlaskとJavascriptを使用して簡単な株価ツールを学習しようとしています。AJAX XHRリクエストonReadyStateChangeイベントの順序と回数明確化
私は特に学びたい普通 Javascriptです。私のコードは動作していますが、私が理解できないのは、開発者のコンソールを見ているときに、3つのエラーメッセージが表示されてからconsole.log(応答)が成功するということです。
応答が戻ってくる前にコードが3回ループするので、最後に200ステータスを返す前に、それぞれの時間が「ERROR」に記録されますか?誰かがそれを私に説明するか、良い記事/投稿を私に指摘してもらえますか?
マイイベントリスナー:
document.getElementById("btn_quote").addEventListener("click", getQuote);
AJAX呼び出し:
function getQuote(e){
e.preventDefault();
var ticker = document.getElementById("ticker").value
var shares = document.getElementById("shares").value
var url = "/quote/"+ticker+"/"+shares
// Fetch the latest data.
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState === XMLHttpRequest.DONE) {
if (request.status === 200) {
var response = JSON.parse(request.response);
console.log(response);
}
} else {
// TODO, handle error when no data is available.
console.log('ERROR');
return false;
}
};
request.open('GET', url);
request.send();
}
それはスローされますか? – Pragun
実際のエラーは発生していません。私がコンソールにログするように頼んだコードの部分に当たっていますので、 'console.log( 'ERROR');' – manisha
の問題を理解することができました。 200がすべて良い、そうでなければ何もしない...あなたの 'else'コードが間違っている、それが唯一の問題 –