我有一个带有文本字段的注册表。 我正在尝试将在该字段上输入的字符串传递给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('');
                }
            });
        }

===============>>#1 票数:1

有趣的问题! 当您在$.ajax({})传递data键值对时,它会将其转换为查询字符串,并将其附加到URL 这类似于您执行以下操作:

url: 'validate.php?q=' + str + '&t=' + vtype;

换句话说,对于GET请求,最好显式地构建和使用URL(带有查询字符串),而不是让jQuery为您完成转换。

另外,您可以在Ajax请求中传递一个processData布尔值。 如果提供FALSE ,则此布尔值将不会自动将data转换为查询字符串。

资料来源: https : //api.jquery.com/jQuery.ajax/

===============>>#2 票数:1 已采纳

首先,jQuery是旨在让JavaScript开发更轻松 ; 为什么用更优雅的替代方法进行字符串连接?

jQuery的另一件事是确保您的数据正确地转义。 举个例子,等效于使用data:实际上是这样的:

url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);

否则, strvtype的值可能会使查询字符串混乱。

其次,构建请求与往返服务器的往返时间可以忽略不计,因此您应该选择更简单,更不易出错的选项。

结论

与此:

data: { cont: str , inputType : vtype} 

  ask by user3555226 translate from so

未解决问题?本站智能推荐: