0

正常に機能しているページアンロードJavaScriptがありますが、IISでは機能していません。IISでこれを許可する必要がありますか?これが機能していないJavaScriptです。

window.onbeforeunload = InitializeService;
function InitializeService() {
    InitializeService1();
    if (checkdisposition.disposition == "") {
        var agree =   confirm("You Did Not Save Disposition, Are You Sure You Want To Navigate?");
        if (agree) {
            return true;
        }
        else {
            return "You Did Not Save Disposition ";
        }
    }
}

function InitializeService1() {
    if (window.XMLHttpRequest) {
        var url = "http://localhost:54329/WebServices/PageUnloadCall.asmx?op=Page_Unload";
        myReq.onreadystatechange = checkStatus1;
        myReq.open("GET", url, false); // true indicates asynchronous request
        myReq.send();
    }
}
4

2 に答える 2

2

ほとんどのブラウザは、ハンドラーXMLHttpRequest中にを送信することを許可していませんonbeforeunload

また、を処理するときにプロンプ​​トを表示しないでくださいonbeforeunload。保存されていないデータがある場合は、文字列を返すだけです。

localhostAlexeiの答えから、本当の問題は、URLバーに入力してページを実行していたことだと思います。ただし、デプロイするときは、デプロイされたサーバーの名前を入力します。Alexeiが提案したように、localhostコードをハードコーディングしないでください。クライアント側で実行したいように見えるので、https://developer.mozilla.org/en/DOM/window.locationを使用する必要があります

var url = location.host + "/WebServices/PageUnloadCall.asmx?op=Page_Unload";
于 2012-04-23T18:23:46.413 に答える
1

「IIS以外の場合」と「IISの場合」のサイトのURLは何ですか?IISの場合、「http:// localhost:54329」へのWebリクエストを開くときにクロスドメイン制限に達する可能性があります(サイトが異なるため(通常はhttp:// localhost:80)。

@Juan Mendesが指摘したように、XMLHttpRequestはその時点ではまったく機能しない可能性があり、ページが閉じる前に非同期の結果を確実に返さないことに注意してください。

于 2012-04-23T18:33:27.690 に答える