我有以下来源:
$('#loginnow').click(function() {
var login_useroremail = $('input[name="login_useroremail"]').val();
var login_password = $('input[name="login_password"]').val();
$.ajax({
type: "POST",
url: "http://www.example.com/login.php",
data: {
login_useroremail: login_useroremail,
login_password: login_password
},
dataType: 'text',
success: function(data) {
if(data == 'ok')
{
alert('Registration successful!');
}
else
{
alert('Registration failed. Try again later.');
}
},
error: function(data) {
alert('Registration failed. Try again later.');
}
});
});
我知道那些警报和条件是令人讨厌的,但是由于我处于早期项目状态,我稍后会对此进行改进。 ;)我正在使用jQuery,jQuery Mobile和PHPTAL。
当我调用示例并且登录确实成功(=服务器返回“ok”)时,一切都是完成的。
我的问题:为什么当我调用示例并且登录失败时,在我的URL栏中会自动附加参数?通话后看起来像:
www.example.com/index.php?user=blah&pw=yadda&...
有时它也有像
这样的锚www.example.com/index.php#ui-state=dialog
至少我可以想象这是为了什么,我认为它有助于记住你目前在移动应用程序中所做的事情。
答案 0 :(得分:2)
好的,现在我们走了。
我发现了发生了什么,这有点棘手。
当使用上面的AJAX请求时,我使用了普通HTML表单中的数据。在打开HTML表单的表单标记中,我没有提供action-或method-attribute属性。就像
一样<form name="bla">
...
</form>
现在发生了什么?我按下了表单的提交按钮。 jQuery事件被触发了。但与此同时,正常的形式事件也被触发了。由于我没有设置任何动作或方法,因此会自动采用
<form name="bla" method="get">
...
</form>
这就是让我离开的原因,因为当然GET参数出现在URL中。 :)
我现在在jquery脚本中使用.preventDefault()来避免通过AJAX以外的方式提交正常表单。