0

以下のajaxのコードを使用しています

// JavaScript Document
function createTeam() {
    var name=document.getElementById("name").value;
    if(name==null || name==""){
        var div3 = document.getElementById("errorMessage");
        var text = "Enter Team";
        div3.style.display = "block";
        div3.style.color = "red";
        div3.style.fontSize = "65%";
        div3.innerHTML = text;
    }else{
        xmlhttp=new XMLHttpRequest();
        xmlhttp.open("POST","/TeamServlet?name="+name+"&task=create",true);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xmlhttp.send();
        xmlhttp.onreadystatechange= readResponse;
    }
    function readResponse(){
        if (xmlhttp.readyState == 4)
        {
            response = xmlhttp.responseText;
            $('#button').hide("slow");
            if(response == "false"){
                var div2 = document.getElementById("errorMessage");
                var text = "Unable to create team.";
                div2.style.display = "block";
                div2.style.color = "red";
                div2.style.fontSize = "65%";
                div2.innerHTML = text;
            }
            if(response == "true"){
                var div = document.getElementById("errorMessage");
                var text1 = "Team created.";
                div.style.display = "block";
                div.style.color = "red";
                div.style.fontSize = "65%";
                div.innerHTML = text1;
            }
        }
    }
}

しかし、この ajax を使用すると、ブラウザのアドレス バーに URL が表示されません。どうすればそれを実現できますか? 来る唯一のURLは、ログインフォームを送信した後です。これは http://localhost:8080/LoginServlet?task=login です が、この後、他のjsps/サーブレットに移動しても、それらのURLはどれも来ません。この ajax コードを修正するにはどうすればよいですか?

4

2 に答える 2

0

これがAJAXの基本的な目的です。「バックグラウンド」で非同期リクエストを実行します。AJAXで行われたすべてのリクエストは、ブラウザの読み込みアイコンをトリガーしたり、現在のURLを変更したりすることはありません。

そのようなことをしたい場合は、を見てくださいHTML5 History API。それは巨大な主題であるため、「1つの」答えを示すことはできませんが、参加するためのリソースを提供します。

このAPIはすべてのブラウザでサポートされているわけではないため、コードをクロスブラウザ互換にするためにポリフィルを使用する必要があります。使用できるクロスブラウザポリフィルのリストは次のとおりです。

このリストはModernizrチームによって管理されており、最新バージョンはhttps://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfillsで入手できます。

于 2012-04-27T09:20:47.397 に答える
0

アドレスバーに ajax リクエストの URL を表示したいのはなぜですか? 現在のページから移動せずにサーバーを呼び出したい場合は、Ajax リクエストが実行されます。アドレス バーの URL を変更する場合は、ユーザーをその URL にリダイレクトする必要があります。そのために Ajax は必要ありません。

于 2012-04-27T09:06:59.060 に答える