0
Ajaxリクエストをバックエンドに送信する簡単なログインページを作成しました。しかし、私は成功したログインのページをリダイレクトすることができません。リダイレクトは15回に1回しか動作しませんが、なぜこれが起こっているのかわかりません。私はwindow.location.hrefのようなリダイレクトのさまざまな可能性を試してみましたが、同じ動作を見直して置き換えてください。HTMLページリダイレクトがJavaScript内で動作しない
ここにお役立てください。
function loginNow(form) {
var uname, passwd;
if ((uname = document.getElementById("username").value) === "")
alert("Username cannot be empty!");
if ((passwd = CryptoJS.SHA1(document.getElementById("password").value).toString()) === "")
alert("Please provide a password!");
uname = uname.toLowerCase();
var xmlObj;
// For all known browsers
if (window.XMLHttpRequest) {
xmlObj = new XMLHttpRequest();
}
if (xmlObj.overrideMimeType) {
xmlObj.overrideMimeType('text/xml');
}
xmlObj.open("GET","../jsp/authenticate.jsp?username="+uname+"&password="+passwd+"",true);
xmlObj.send();
xmlObj.onreadystatechange = function()
{
if (xmlObj.readyState == 4)
{
var newData = xmlObj.responseText;
var authData = JSON.parse(newData);
var auth = authData.auth;
if (auth == 0) {
**window.location = "http://www.google.com";**
} else {
alert ("Login failed");
}
}
};
}
window.locationの前にconsole.logを追加して、その行が到達しているかどうかを確認してください。 –
console.log(auth)を追加してください。あなたのvar auth = authData.authの後。サーバーが戻ってきたものを見てください。これはサーバー側のエラーかもしれません..また、なぜあなたはwindow.locationの周りに**(アスタリスク)を持っていますか? – rubberchicken
それは行に達し、authはゼロです。サーバーからの応答は問題ありません。 window.location行は実行されますが、ページのリダイレクトは機能しません。これは15回に1回動作します。アスタリスクは太字で強調表示されていた – user3616977