当参数有多个单词时,jquery ajax发布失败

时间:2014-03-04 17:29:52

标签: jquery

当使用jquery ajax将参数发布到php页面时,当字符串只包含一个单词时就可以了

 $.ajax({
 type: "POST",
 dataType: "json",
 data: { query: 'london'},
 url: "/autosuggest.php",
 });

但是分隔2个单词的空格会返回400格式错误的请求错误

 $.ajax({
 type: "POST",
 dataType: "json",
 data: { query: 'london h'},
 url: "/autosuggest.php",
 });

任何人都可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

默认情况下jQuery.ajax使用contentType=application/x-www-form-urlencoded发送数据。这意味着您的参数已添加到网址,您的网址如下所示:

/autosuggest.php?query=london h

当然它是无效的网址。要将包含空格的字符串传递给php页面,您应该使用contentType=application/json

$.ajax({
    type: "POST",
    dataType: "json",
    contentType: 'application/json',
    data: { query: 'london h'},
    url: "/autosuggest.php",
});