Node.js | Разбор ключа запроса URL-адреса WHATWG - как его не анализировать? - PullRequest
0 голосов
/ 04 марта 2020

Я использую WHATWG API для URL в Node.js (v10.x) .

У меня есть параметр запроса URL, ключ которого должен иметь [ и ]. Когда они включены в их ключ, вот так:

// creates new URLSearchParams, and adds them to an existing URL

myURL //existing `URL` object

let search_params = new URLSearchParams({
    companies[0]: <my_value_here>
});
myURL.search = search_params.toString();

Затем myURL.href включает эту пару ключ-значение параметра запроса companies%5B0%5D=<my_value_here>

Я хочу, чтобы ключ не был URL закодирована. Есть ли способ предотвратить кодировку ключа / этих символов конкретно или, альтернативно, URL-декодирование ключа? Я предпочитаю отключать кодировку для этого ключа (и, желательно, любого желаемого ключа и значения, возможно, тоже).

Это для API-интерфейсов Marketing Analytics в LinkedIn, если у кого-то есть опыт работы с этим.

1 Ответ

0 голосов
/ 04 марта 2020

Действительно ли API ломается, когда вы передаете закодированные [] символы? Если это так, то это ошибка в API, и она действительно должна быть исправлена ​​LinkedIn, а не обходиться вами.

Тем не менее, вы можете вручную декодировать эти указанные c символы.

myURL.search = search_params.toString();
const myURLHackForLinkedIn = myURL.toString().replace(/%5B0%5D/g, "[]");

Я не удивлюсь, если браузер перекодирует их за кулисами, когда вы передадите их через HTTP.

...