[英]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.