Как отправить «+» вместо «% 20;пока появляется пространство - PullRequest
0 голосов
/ 11 июня 2018

Я столкнулся с проблемой.Когда я отправляю файл Json по запросу Ajax, все параметры отображаются в 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"
  }

По отображаемому URL

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

и желаемые результаты должны быть:

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

С уважением.

1 Ответ

0 голосов
/ 11 июня 2018

Для этого можно использовать jQuery.param и String.prototype.replace:

Сначала преобразуйте объект в сериализованное представление для строки запроса, используя:

var params = jQuery.param(data);

, затем замените все%20 с + с использованием String.prototype.replace:

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

Подробнее о jQuery.param и String.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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...