[英]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.