Для application/x-www-form-urlencoded пробелы должны быть заменены на "+", поэтому вам может понадобиться encodeURIComponent с дополнительной заменой "%20" на "+".
Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
Идем на wiki. Для типа данных application/x-www-form-urlencoded
указана ссылка на документ HTML 4.01 Specification, Section 17.13.4.1 в котором написано следующее:
application/x-www-form-urlencoded
This is the default content type. Forms submitted with this content type must be encoded as follows:
Для MIME application/x-www-form-urlencoded
используется такая же схема кодирования, как и для URL (ибо «...-urlencoded», то есть «закодировано как в URL»).
В свою очередь, в URL кодирование пробела плюсом является договорённостью. Причина этой договорённости банальна — читаемость. Дело в том, что web создавался в англоязычных США, и об использовании нелатинских адресов тогда даже не задумывались (или задумывались, но решили, что таких будет крайне немного), а потому каждая буква кодировалась как есть, без escape-последовательностей.
Сравните какой-нибудь:
www.example.org/fileName.asp?param1=some+Param+with+Long+length&bar=5000
и:
www.example.org/fileName.asp?param1=some%20Param%20with%20Long%20length&bar=5000
Думаю, не только мне прочитать первый вариант проще и быстрее, особенно в случае слов, начинающихся с больших букв.
P. S: В случае использования нелатинских символов, когда вся строка состоит из одних escape-последовательностей, разницы в способах записи пробела никакой, да.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Столкнулся с непониманием того, какая высота у элементов с dislpay: none;
Подскажите, почему без if-а таймер работает нормально, а с ним - вообще не запускается?
Данный код обрабатывает клик на компьютере, но не обрабатывает клик на телефонеКак его адаптировать, чтобы клик отслеживался на телефоне?