jquery ajax post 在参数有多个单词时失败



当使用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",
 });

谁能指出我正确的方向?

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

/autosuggest.php?query=london h

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

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

最新更新