Mat*_*att 18 javascript jquery escaping
我正在使用jQuery.ajax从页面中提取表单数据,并将其发送到我的数据库(通过另一个PHP页面).
表格信息收集方式:
var X=$('#div1').val();
var Y=$('#div2').val();
Run Code Online (Sandbox Code Playgroud)
这用于构建POST字符串,即
var data='varx='+X+'&vary='+Y;
Run Code Online (Sandbox Code Playgroud)
显然,如果使用&符号,这是有问题的.什么是逃避变量的最佳方法,特别是使用户可以安全地使用&符号(&)?
谢谢!
Lir*_*una 24
encodeURIComponent 会做你想要的.
var X = encodeURIComponent($('#div1').val());
var Y = encodeURIComponent($('#div2').val());
Run Code Online (Sandbox Code Playgroud)
这将编码所有可能不安全的字符.
Ale*_*lex 24
最好的方法是使用数据对象.
jQuery.post("yourScript.php", {
varx: X,
vary: Y
});
Run Code Online (Sandbox Code Playgroud)
要么
jQuery.ajax({
url: "yourScript.php",
type: "POST",
data: ({varx: X, vary: Y}),
dataType: "text",
success: function(msg){
alert(msg);
}
}
);
Run Code Online (Sandbox Code Playgroud)
您还可以使用jQuery的serialize()将表单数据作为序列化查询字符串获取:
var data = jQuery(formSelector).serialize();
Run Code Online (Sandbox Code Playgroud)
.serialize()方法以标准URL编码表示法创建文本字符串.它在表示一组表单元素的jQuery对象上运行.表单元素可以是几种类型.
在我看来更美观:-)