[英]Why ajax doesn't work unless I refresh or use location.href?
我正在研究一個HTML項目,該項目最終將由Phonegap打包。 所以我試圖將數據從html形式編碼為JSON格式,然后使用ajax發送到駐留在服務器上的php文件,並接收響應以執行其他操作。
現在,我在index.html中使用<a href='login.html'>
打開登錄頁面。 在我的登錄頁面中,我有這個
<script>
$(document).ready(function(e) {
$('#loginform').submit(function(){
var jData = { "email": $('#emailLogin').val(), "password": $('#Password').val()};
$.ajax({
url: 'PHP/login.php',
type:'POST',
data: jData,
dataType: 'json',
async: false,
error: function(xhr,status){
//reload();
location.href='index.html';
alert('Wrong email and password');
},
success: function(data){
if(data[1] == 1){
var Id_user = data[0];
location.href='loginSuccess.html';
}
}
});
});
});
</script>
將我的數據發送到服務器。 但是我發現它不起作用,它仍然在登錄頁面中。 我試圖輸入數據並再次提交,但仍然沒有任何反應。 在刷新登錄頁面並再次輸入數據之前,它可能會給出錯誤消息或進入loginsuccess頁面。 但是,當我使用<script> function loadLogin(){ location.href='login.html'; } </script>
<script> function loadLogin(){ location.href='login.html'; } </script>
打開登錄頁面,一切正常。
那是什么原因造成的呢? 如何修改這段代碼以使其更好?
您正在使用jquery mobile嗎?
我遇到了同樣的問題。
jQuery mobile具有全局配置選項:ajaxEnabled,默認值為true。
它將通過Ajax自動處理鏈接點擊和表單提交。
我認為您可以將false設置為按常規http請求加載網址。
<script src="jquery.js"></script>
<script>
$(document).bind('mobileinit', function() {
$.extend($.mobile, {
ajaxEnabled: false
});
});
</script>
<script src="jquery-mobile.js"></script>
希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.