2

Ajax 呼び出しのために、xmlhttp オブジェクトを作成しました。「開く」と、開くと思いますが、状態にはなりませんxmlhttp.readyState == 4 && xmlhttp.status == 200。を使用して隠しページを実行しようとしましたが、window.openエラーは表示されません。

以前は別のページで AJAX を使用していましたが、問題なく動作していました。xmlhttpリクエストは機能するので開くと思いますがdocument.getElementById('Approval' + id).innerHTML = 'Loading...';、状態にまったく到達しませんxmlhttp.readyState == 4 && xmlhttp.status == 200

代わりに、表示するように設計した「読み込み中...」が表示された直後(非表示のページが通常は時間がかかる電子メールを送信するため、これは異常です)、前のテキストが表示されます。私はこれに遭遇したことがありません。

以下は私のコードです

var xmlhttp;

            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            else {// code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }


            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

                    document.getElementById('Approval' + id).innerHTML = xmlhttp.responseText;
                    //alert(xmlhttp.responseText);
                }

                else {

                    document.getElementById('Approval' + id).innerHTML = 'Loading...';
                }
            }

            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.setRequestHeader("Content-length", data.length);
            xmlhttp.setRequestHeader("Connection", "close");
            xmlhttp.open("GET", "AJAX%20pages/UploadDecisionAbsenceRequest.aspx?decision=" + decision + '&position=' + position + '&id=' + id, true);
            xmlhttp.send();

            //window.open("AJAX%20pages/UploadDecisionAbsenceRequest.aspx?decision=" + decision + '&position=' + position + '&id=' + id,'','width=200, height = 100');

また、次のコード行を記述して、xmlhttp リクエストの状態を把握しようとした後:

document.getElementById('Approval' + id).innerHTML = "Now (readystate) " + xmlhttp.readystate + " and status " + xmlhttp.status;

私が得たのは Now (readystate) undefined と status 0 だけで、そこから先には進みませんでした。

4

1 に答える 1

0
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

リクエストを開く前に使用することはできません。また、その後、weather data.length が正しいかどうかを確認します。

使用する

    xmlhttp.open("GET", "AJAX%20pages/UploadDecisionAbsenceRequest.aspx?decision=" + decision + '&position=' + position + '&id=' + id, true);
  xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.setRequestHeader("Content-length", data.length);
            xmlhttp.setRequestHeader("Connection", "close");

            xmlhttp.send();

デモ

于 2012-10-08T16:43:47.050 に答える