お世話になります。
javascriptをローカルのブラウザで動作させて
対象のwebサーバからhttpのステータスコードを取得、
200か否かで表のSTATUS欄の色と文言を変化させたいです。
※クロスドメイン制限はブラウザで解除
xhr.onreadystatechange実行時にif文で
resultにOKかNG
bg_colorに表示する色
を代入していますが、
その後のdocument.writeにうまく反映されません。
(undefinedになってしまう)
ご教授願います。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <script language="JavaScript" type="text/javascript"> // 自動更新のリロード時間 //setTimeout("location.reload()",1000*60); // DUMY SERVERのURL var base_url = "http://XXX.XXX.XXX."; // DUMY SERVERの数 var max = 15; </script> </head> <body> <script language="JavaScript" type="text/javascript"> document.write("<table border=\"3\">"); document.write("<tr bgcolor=\"Aqua\"><th>DUMY SERVER</th><th>STATUS</th></tr>"); var ip = 10; for(var i = 1 ; i <= max ; i++) { ip++; var url = base_url + ip; var server = "SAVEDUMY" + i; var result; var bg_color; var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange = function(){ if (xhr.readyState === 4 && xhr.status === 200){ //console.log("200"); result = "OK"; bg_color = "Lime"; }else{ result = "NG"; bg_color = "Red"; } }; xhr.send(); document.write("<tr><td>" + server + "</td><td bgcolor=\"" + bg_color + "\">" + result + "</td></tr>"); } document.write("</table>"); </script> </body> </html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。