我有以下来源:

$('#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。

当我调用该示例并且登录确实成功(=服务器返回“确定”)时,一切都已找到。

我的问题:为什么当我调用示例并且登录失败时,在参数栏中自动添加参数?通话后,它看起来像:
www.example.com/index.php?user=blah&pw=yadda&...

有时它也有 anchor
www.example.com/index.php#ui-state=dialog

至少我可以想象这是做什么的,我认为这有助于记住您当前在移动应用程序中所做的事情。

最佳答案

好,现在我们开始。

我发现了正在发生的事情,这有点棘手。

当使用上面的AJAX请求时,我使用了来自普通HTML表单的数据。在打开HTML表单的表单标签中,我没有提供 Action 或方法属性。就像

<form name="bla">
...
</form>

现在发生了什么?我按下了表单的提交按钮。 jQuery事件被触发。但与此同时,正常表单事件也被触发。由于我没有设置任何操作或方法,它会自动假定
<form name="bla" method="get">
...
</form>

那就是让我吃惊的原因,因为GET参数当然会随后出现在URL中。 :)

我现在在jquery脚本中使用.preventDefault()来避免通过AJAX以外的任何其他方式提交普通表单。

10-07 14:21
查看更多