我在Javascript / Node.js上,当我使用此查询参数发出HTTP请求时:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"
我收到错误,因为它在以后的所有内容中存在:
?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-
我想知道如何对这个字符串进行编码,这样它就不会将其删除?
答案 0 :(得分:8)
我假设您URL的末尾的哈希(#)实际上是查询参数的一部分。问题是Node.js将其视为整个URL的哈希值,它在HTTP请求中不起作用。因此,您需要正确编码查询字符串。
像querystring.stringify
这样的结构化API函数可能是最好的。
var query = querystring.stringify({
key: '"https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"'
});
答案 1 :(得分:1)
urlencode it。
在Javascript中:escape(string)
答案 2 :(得分:0)
使用encodeURIComponent
就像赫斯基在评论中提到的那样。
?key=encodeURIComponent(https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f)