簡體   English   中英

在AJAX請求后,URL會自動附加$ _GET參數

[英]URL gets appended with $_GET-parameters automatically after AJAX request

我有以下來源:

$('#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表單的表單標記中,我沒有提供action-或method-attribute屬性。 就像

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

現在發生了什么? 我按下了表單的提交按鈕。 jQuery事件被觸發了。 但與此同時,正常的形式事件也被觸發了。 因為我沒有設置任何動作或方法,所以它會自動假設

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

這就是讓我失望的原因,因為當然GET參數出現在URL中。 :)

我現在在jquery腳本中使用.preventDefault()來避免以通過AJAX之外的任何其他方式提交正常表單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM