javascript - AJAX 请求后,URL 会自动附加 $_GET 参数

标签 javascript php jquery jquery-mobile phptal

我有以下来源:

$('#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”)时,一切正常。

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

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

有时它也有一个像这样的 anchor

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

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

最佳答案

好的,现在我们开始吧。

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

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

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

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

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

这就是让我失望的原因,因为 GET 参数当然随后出现在 URL 中。 :)

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

关于javascript - AJAX 请求后,URL 会自动附加 $_GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21644617/

相关文章:

javascript - AWS.S3.ManagedUpload() 和 s3.upload() 方法有什么区别?

php - 从 php 代码中禁用文本框

php - 将多行 MySQL 数据库返回到 iOS App

php - 表单不会将数据发送到mysql

jquery - 附加滚动 Bootstrap 模式

javascript - 为什么是 `null >= 0 && null <= 0` 而不是 `null == 0` ?

javascript - prettyphoto 不显示缩略图,但在单击时解析图像

javascript - jQuery 数组 : Add css class to specific element

jQuery 移动引用错误 "a is undefined"

php - Ajax jQuery 数组中的 POST 未定义索引