我使用jQuery.ajax從頁面中提取表單數據,並將其發送到我的數據庫(通過另一個PHP頁面)。通過POST轉義jQuery數據發送
的形式的信息被收集:
var X=$('#div1').val();
var Y=$('#div2').val();
這是用來建立POST字符串,即
var data='varx='+X+'&vary='+Y;
顯然如果使用符號字符,這是有問題的。什麼是避開變量的最佳方法,特別是爲了讓用戶可以安全地使用&符號(&)?
謝謝!
我使用jQuery.ajax從頁面中提取表單數據,並將其發送到我的數據庫(通過另一個PHP頁面)。通過POST轉義jQuery數據發送
的形式的信息被收集:
var X=$('#div1').val();
var Y=$('#div2').val();
這是用來建立POST字符串,即
var data='varx='+X+'&vary='+Y;
顯然如果使用符號字符,這是有問題的。什麼是避開變量的最佳方法,特別是爲了讓用戶可以安全地使用&符號(&)?
謝謝!
最好的方法是使用數據對象。
jQuery.post("yourScript.php", {
varx: X,
vary: Y
});
或
jQuery.ajax({
url: "yourScript.php",
type: "POST",
data: ({varx: X, vary: Y}),
dataType: "text",
success: function(msg){
alert(msg);
}
}
);
您還可以使用jQuery的序列化()來獲取表單數據作爲序列化的查詢字符串:
var data = jQuery(formSelector).serialize();
的.serialize()方法創建文本 標準URL編碼的字符串 表示法。它運行在代表一組表格 元素的jQuery 對象上。表單元素可以是 幾種類型。
在我看來更漂亮的方式:-)
encodeURIComponent
將做你正在尋找。
var X = encodeURIComponent($('#div1').val());
var Y = encodeURIComponent($('#div2').val());
這將編碼所有可能不安全的字符。
感謝您的回覆中逃生功能! – Matt 2010-02-12 22:07:47
您可以使用JavaScript
var data='varx='+escape(X)+'&vary='+escape(Y);
在JavaScript 1.5版中棄用了escape()函數。改爲使用encodeURI()或encodeURIComponent()。 – CoR 2015-04-28 11:47:26
感謝您的回覆! – Matt 2010-02-12 22:07:15