对字符串进行编码以便通过 HTTP 请求发送?

发布于 2024-10-19 02:49:51 字数 310 浏览 5 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

许久 2024-10-26 02:49:51

我假设 URL 末尾的哈希 (#) 实际上是查询参数的一部分。问题在于 Node.js 将其视为整个 URL 的哈希值,这在 HTTP 请求中不起作用。因此,您需要对查询字符串进行正确编码。

结构化 API 函数,例如 querystring.stringify 可能是最好的。

var query = querystring.stringify({
  key: '"https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"'
});

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.

var query = querystring.stringify({
  key: '"https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"'
});
烧了回忆取暖 2024-10-26 02:49:51

对它进行urlencode。

在 JavaScript 中:转义(字符串)

urlencode it.

in Javascript: escape(string)

下壹個目標 2024-10-26 02:49:51

正如 Husky 在评论中提到的那样,使用 encodeURIComponent

?key=encodeURIComponent(https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f)

Use encodeURIComponent as Husky mentioned in his comment.

?key=encodeURIComponent(https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文