Node.js | WHATWG URL 查询参数键解析 - 如何不解析?
Node.js | WHATWG URL Query Parameter Key Parsing - How to Have It Not Parsed?
我正在使用 WHATWG API for URLs in 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 编码。有没有办法专门防止 key/those 字符的编码,或者 URL-解码密钥?
我更喜欢禁用该键的编码(最好是任何所需的键和值,也可能)。
这是针对 LinkedIn 的营销分析 API,如果有人对此有经验的话。
当您传递编码的 []
字符时,API 是否真的中断了?如果是这样,那是 API 中的一个错误,它确实应该由 LinkedIn 修复,而不是由你解决。
也就是说,您可以手动解码那些特定字符。
myURL.search = search_params.toString();
const myURLHackForLinkedIn = myURL.toString().replace(/%5B0%5D/g, "[]");
如果浏览器在您通过 HTTP 传递它们时在幕后重新编码它们,我不会感到惊讶。
我正在使用 WHATWG API for URLs in 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 编码。有没有办法专门防止 key/those 字符的编码,或者 URL-解码密钥? 我更喜欢禁用该键的编码(最好是任何所需的键和值,也可能)。
这是针对 LinkedIn 的营销分析 API,如果有人对此有经验的话。
当您传递编码的 []
字符时,API 是否真的中断了?如果是这样,那是 API 中的一个错误,它确实应该由 LinkedIn 修复,而不是由你解决。
也就是说,您可以手动解码那些特定字符。
myURL.search = search_params.toString();
const myURLHackForLinkedIn = myURL.toString().replace(/%5B0%5D/g, "[]");
如果浏览器在您通过 HTTP 传递它们时在幕后重新编码它们,我不会感到惊讶。