私は楽しみのために JQuery を試していますが、ちょっとした壁にぶつかりました。ログインページを作成しようとしていますが、ユーザーがログインIDとパスワードを入力して送信ボタンをクリックするフォームをjspに作成することを考えていました。これは、バックエンドへの AJAX 呼び出しを行う JQuery メソッドによってキャッチされます。「success」メソッドは、window オブジェクトの場所を、Ajax 呼び出しから返された値によって示される新しい URL に設定する必要があります。参考までに: 私はバックエンドの担当者で、その部分をカバーしています。私の問題は、バックエンドを呼び出して必要なデータを取得することです。次に、単一のクエリ パラメータを含む URL を使用して新しいウィンドウの場所を設定しようとします (アプリがユーザーを認識できるようにするため)。これは、ベース URL に到達するとほとんど機能しますが、クエリ パラメータはありません (ただし、 「?」
これが私のJQueryコードです:
</script>
$(document).ready(function(){
submit( function() {
var id = $("#login_id").val();
var pwd = $("#password").val();
var uri = "`http://localhost:8080/SW_Server/rest/admin/login`";
$.ajax({
async: false,
url: uri,
type: 'GET',
dataType: "json",
success: function(data) {
var session = data.session;
newLoc = data.redirect+"?"+data.session
// Prevent the form's default submission.
preventDefault();
// Prevent event from bubbling up DOM tree, prohibiting delegation
event.stopPropagation();
window.location.replace(encodeURIComponent(newLoc));
},
error: function(jqHHR, textStatus, errorThrown) {
alert("textStatus: "+textStatus+"\nerror: "+errorThrown);
// Prevent the form's default submission.
event.preventDefault();
// Prevent event from bubbling up DOM tree, prohibiting delegation
event.stopPropagation();
}
});
});
</script>
これを実行すると、現在、バックエンドは data.redirect=http://localhost:8080/test.jsp
と data.session=session_id=3 を返します。これはアラートで確認できます (万歳) が、window.location.replace(newLoc) が呼び出されると、http://localhost:8080/test.jsp?
クエリ パラメータなしでto 。私は一日中頭を叩いています。新しいページでクエリ パラメータを正しく取得するにはどうすればよいですか?
よろしく、
ティム