如何发送' +'相反'%20;空间出现了

时间:2018-06-11 19:44:05

标签: jquery ajax url

我遇到了一个问题。当我在Ajax请求上发送Json文件时,所有参数都以适当的格式显示在URL上,除了带有空格的字符串。我收到了'%20'接受' +'。 我该怎么办?

      $.ajax({
        type: "GET",
        url: myUrl,
        data: data,
        headers: {
            'Content-type': 'application/x-www-form-urlencoded'
        },
        dataType: "json",
        success: function (result) {
        //Do thomething
      },
      error: function () {
      }
});

数据的Json格式,如:

  data
  {
    param1:1,
    param2:2,
    param3:"Hello world"
  }

在显示的网址

   &param1=1&param2=2&param3=Hello%20world

并且渴望结果应该是:

   &param1=1&param2=2&param3=Hello+world

问候。

1 个答案:

答案 0 :(得分:3)

您可以使用jQuery.paramString.prototype.replace来实现目标:

首先,使用以下命令将对象转换为查询字符串的序列化表示:

var params = jQuery.param(data);

然后,使用%20将所有+替换为String.prototype.replace

params = params.replace('%20', '+');

详细了解jQuery.paramString.prototype.replace

希望它有所帮助。

var params = jQuery.param({
  param1: 1,
  param2: 2,
  param3: "Hello world"
}).replace('%20', '+');

console.log(params);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>