我有一個用戶輸入用戶名和密碼的登錄表單。當他們點擊一個圖像按鈕來提交我做一個Ajax調用來驗證用戶。該響應返回目標網址。現在,當我嘗試做一個「window.location.href = url」的過程不適用於FireFox 7(FF),但它可以在其他瀏覽器IE,Chrome ...等工作window.location.href和JQuery不在FF 7中工作
這是我的jquery ajax調用。
var loginSubmit = function() {
if ($('#loginForm').data('isSubmitting')) return false;
showProgress('Logging in..');
$('#loginErrors').empty();
$('#login-form').fadeTo(100, 0.4);
$.ajax({
cache: false,
url: '/dispatcher/user/login',
data: {
'user': $('#userName').val(),
'pwd': $('#password').val(),
'continuePath': $('#continuePath').length > 0 ? $('#continuePath').val() : '/my-account'
},
type: 'POST',
success: function (data) {
$('#loginForm').data('isSubmitting', true);
console.log("Data from Controller: " + data.dest);
if (data.dest) {
var href = data.dest;
window.location.href = href;
return false;
} else {
console.log("DATA DEST FALSE");
$('#loginForm').data('isSubmitting', false);
$('#login-form').fadeTo(100, 1);
showError('Invalid username/password');
}
}
});
return false;
};
$('#loginForm').submit(loginSubmit);
這是我的表格。
<form id="loginForm" action="#">
<c:if test="${sessionScope['continuePath'] != null}">
<input type="hidden" name="continuePath" value="${sessionScope['continuePath']}"/>
</c:if>
<div id="progressMessage" style="color: #333; font-weight: bold;"></div>
<div id="loginErrors" style="color: red; font-weight: bold"></div>
<div id="login-form">
<dl>
<dt><label for="userName">Email Address:</label></dt>
<dd><input name="user" id="userName" type="text" size="30" maxlength="80"/></dd>
<dt><label for="password">Password:</label></dt>
<dd><input name="pwd" id="password" type="password" /></dd>
</dl>
<div class="login_button">
<input type="image" src="/assets/images/user/btn-log-in.gif" alt="Login"/>
<br/><br/>
<a href="javascript:openPopup('forgotPassword');" class="default">Forgot your password?</a>
<!--
<a href="#" rel="#forgotPasswordDialog" class="default">Forgot your password?</a>
-->
</div>
</div>
</form>
爲什麼這種行爲在Firefox 7有什麼不同?有人可以提出一個可以在所有瀏覽器中工作的解決方案嗎?你能感覺到我的沮喪嗎?
是否只用'location.href =網址工作;'? –
如果在作用域鏈上存在某個中間變量對象的* window *屬性和no * location *屬性,那麼這隻會有所作爲。這是偶然的機會,所以我猜想值得一試。 * window.location *和* location *都可以預期通常解析爲相同的對象,即[window.location](http://www.w3.org/TR/html5/history.html#the-location - 接口)對象,在大多數情況下。當然不能保證,這就是爲什麼許多腳本保持對全局對象的獨立引用,這可以用來保證訪問預期的對象。 – RobG
我試過window.location,位置和window.location.href在FF7上沒有成功,所有其他工作正常。 – Byron