JQUERY AJAX,发送到服务器的空间问题,为什么?

时间:2010-03-14 18:20:59

标签: jquery ajax coldfusion urlencode urldecode

我正在使用以下代码发布到服务器,然后将其发送到MYSQL查询以通过搜索查找匹配项。

$.ajax({
url: '/search/spotlight/',
data: "q=" + $(this).val(),
success: function(data) {
}
});

当Q的val中有空格时,就会产生问题。我想知道我是否正确处理了这个问题?我需要在AJAX调用中对值进行编码吗?或者这是我的后端问题,即ColdFusion

现在JQUERY将以下内容发布到服务器: /搜索/聚光灯/ Q =姓%20LastName

这是对的吗?

3 个答案:

答案 0 :(得分:5)

/search/spotlight/?q=FirstName%20LastName是一个有效的网址字符串。我的猜测是你的服务器端脚本需要更好地处理事情。

顺便说一句,你不需要自己构建查询字符串,jquery可以为你做这件事:

$.ajax({
url: '/search/spotlight/',
data: {"q": $(this).val()},
success: function(data) {
}
});

答案 1 :(得分:4)

在客户端看起来不错。只需在ColdFusion中的字符串上使用URLDecode,即可将%20转换为空格(以及其他特殊字符)。

答案 2 :(得分:1)

是对的...%20表示空间

但你应该像这样设置数据

data: {'q': $(this).val()}