URL 在 AJAX 请求后自动附加 $_GET 参数



>我有以下来源:

$('#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"),一切都是finde。

我的问题:为什么当我调用示例并且登录不成功时,在我的 URL 栏中会自动附加参数?调用后,它看起来像:

www.example.com/index.php?user=blah&pw=yadda&...

有时它还有一个锚点,例如

www.example.com/index.php#ui-state=dialog

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

好的,现在我们开始了。

我发现了发生了什么,这有点棘手。

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

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

现在发生了什么?我按下了表单的提交按钮。jQuery-event被触发了。但与此同时,正常形式事件也被触发了。由于我没有设置任何操作或方法,它会自动假设

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

这就是结束我的原因,因为 GET 参数当然出现在之后的 URL 中。 :)

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

相关内容

  • 没有找到相关文章

最新更新