私は次のコードを持っています:
// setup the AJAX request
var pageRequest = false;
if(window.XMLHttpRequest) pageRequest = new XMLHttpRequest();
else if(window.ActiveXObject) pageRequest = new ActiveXObject("Microsoft.XMLHTTP");
// callback
pageRequest.onreadystatechange = function() {
alert('pageRequest.readyState: ' + pageRequest.readyState
+ '\npageRequest.status: ' + pageRequest.status);
}
pageRequest.open('POST','ajax.php',true);
// q_str contains something like 'data=value...'
pageRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
pageRequest.setRequestHeader("Content-length", q_str.length);
pageRequest.setRequestHeader("Connection", "close");
pageRequest.send(q_str);
これはChromeで正常に機能しますが、IEはそれを窒息させ、「不特定のエラー」を吐き出します。また、alert()が含まれている行を指します。アラートを表示できないのはなぜですか?
編集:さて、エラーダイアログを閉じた後、期待どおりに3つのアラートが表示されます。
編集:今、それは本当に奇妙になっています。変えたら
alert('pageRequest.readyState: ' + pageRequest.readyState
+ '\npageRequest.status: ' + pageRequest.status);
に
alert('pageRequest.readyState: ' + pageRequest.readyState);
その後、動作し、5つのアラートを受け取ります。(1,1,2,3,4)