使用jquery的ajax请求中的空格

使用jquery的ajax请求中的空格,jquery,ajax,Jquery,Ajax,我提出了一个ajax请求,但遇到了一些问题,这是我的jquery代码: var url = "http://www.domain.com/SearchService.svc/search?keyword=my search keywords"; $.ajax({ type: "GET", url: url, dataType: "json"....... ..... 当我提出这个请求时,我的搜索(var url)中有时会出现空格,然后关键

我提出了一个ajax请求,但遇到了一些问题,这是我的jquery代码:

var url = "http://www.domain.com/SearchService.svc/search?keyword=my search keywords";
    $.ajax({
        type: "GET",
        url: url,
        dataType: "json".......
.....
当我提出这个请求时,我的搜索(var url)中有时会出现空格,然后关键字会被切掉,所以在上面的例子中,它只是搜索“我的”。我知道这是一个非常简单的问题,这一定是一个简单的解决办法。只是找不到解决办法


谢谢你的帮助

只需将空白转换为url格式即可。对于每个空格字符,请改用%20:

var url = "http://www.domain.com/SearchService.svc/search=my%20search%20keywords";
    $.ajax({
        type: "GET",
        url: url,
        dataType: "json".......
.....

或者,如果您想以更自动化的方式实现,只需像Felix建议的那样使用javascript函数
escape()

您可以在URL中转义搜索关键字,但正确的做法是将
search
作为参数添加到ajax请求中

var url = "http://www.domain.com/SearchService.svc/search=my search keywords";
    $.ajax({
        type: "GET",
        url: url,
        data: { "search" : "my search keywords" }
        dataType: "json".......
您可以使用:

这将对URL进行编码,并将空格和任何其他“不安全”字符转换为URL使用

另请参阅,了解如何安全地编码要插入到URI中的数据。

您可以这样做

var url = "http://www.domain.com/SearchService.svc/search?keyword=" 
    + encodeURIComponent("my search keywords");

虽然escape()也可以为您工作,但在某些情况下,只有encodeURIComponent()可以工作,例如对于字符&=+等。

有一个javascript函数可以完成此操作,我认为它叫做escape。@row是的,您是对的。我记不起函数的名称了。看来他没有使用标准的查询字符串,所以你不应该考虑使用标准的查询字符串格式,即<代码>。http://www.domain.com/SearchService.svc?search=my 搜索关键字(注意问号),即,加上Pekka的答案可能是最好的解决方案。更新了问题,刚刚编写了错误的url..我知道这可能太晚了,但我只是看到了这一点,当时我有一个类似的问题
escape
已被弃用,并被此应用程序的encodeURI替换
var url = "http://www.domain.com/SearchService.svc/search?keyword=" 
    + encodeURIComponent("my search keywords");