[英]Passing a string dynamically to a page using AJAX
我有一个带有文本字段的注册表。 我正在尝试将在该字段上输入的字符串传递给php文件以动态验证该字符串。 什么是最好的(性能方面)的方法。
运用
data: { cont: str , inputType : vtype}
或查询字符串
url: 'validate.php?q='+str+'t='+vtype;
这是我当前的脚本:
function validate(str,vtype) {
$.ajax({
type: 'GET',
url: 'validate.php?q='+str+'t='+vtype,
timeout: 1000,
success: function (data) {
$("#validationIndicator").html(data);
},
error: function (XMLHttpRequest, errorThrown) {
$("#validationIndicator").html('');
}
});
}
有趣的问题! 当您在$.ajax({})
传递data
键值对时,它会将其转换为查询字符串,并将其附加到URL
。 这类似于您执行以下操作:
url: 'validate.php?q=' + str + '&t=' + vtype;
换句话说,对于GET
请求,最好显式地构建和使用URL(带有查询字符串),而不是让jQuery为您完成转换。
另外,您可以在Ajax
请求中传递一个processData
布尔值。 如果提供FALSE
,则此布尔值将不会自动将data
转换为查询字符串。
资料来源: https : //api.jquery.com/jQuery.ajax/
首先,jQuery是旨在让JavaScript开发更轻松 ; 为什么用更优雅的替代方法进行字符串连接?
jQuery的另一件事是确保您的数据正确地转义。 举个例子,等效于使用data:
实际上是这样的:
url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);
否则, str
或vtype
的值可能会使查询字符串混乱。
其次,构建请求与往返服务器的往返时间可以忽略不计,因此您应该选择更简单,更不易出错的选项。
与此:
data: { cont: str , inputType : vtype}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.