对字符串进行编码以便通过 HTTP 请求发送?
我在 Javascript/Node.js 上,当我使用此查询参数发出 HTTP 请求时:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"
我收到一个错误,因为它存储了之后的所有内容:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-
我想知道如何对这个字符串进行编码,这样它就不会被截断?
I am on Javascript/Node.js and when I'm making a HTTP request with this query parameter:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"
I get an error because it shops of everything after:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-
I wonder how I can encode this string so it doesn't chop it off?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我假设 URL 末尾的哈希 (#) 实际上是查询参数的一部分。问题在于 Node.js 将其视为整个 URL 的哈希值,这在 HTTP 请求中不起作用。因此,您需要对查询字符串进行正确编码。
结构化 API 函数,例如
querystring.stringify
可能是最好的。I'm assuming that the hash (#) at the end of your URL is actually part of the query argument. The problem is that Node.js is treating it as the hash of your overall URL, which plays no role in HTTP requests. Thus, you'll need to properly encode the query string.
A structured API function like
querystring.stringify
is probably best.对它进行urlencode。
在 JavaScript 中:
转义(字符串)
urlencode it.
in Javascript:
escape(string)
正如 Husky 在评论中提到的那样,使用
encodeURIComponent
。Use
encodeURIComponent
as Husky mentioned in his comment.