如何解决JavaScript 子对象的 URL 查询字符串编码
我正在向 API 发送以下数据,但未接收子对象的值。如何在 javascript 中正确地对子对象进行 URL 编码?
数据:
from urllib.parse import quote
urlsafequery = quote(urlquery)
我用来对数据进行 URL 编码的循环代码:
var details = {
OrderDate: "10-Sep-2020",OrderID: "1011539",Dated: "27-feb-2021",CreatedBy: 0012,tblAuthorityLetterDtls: [
{
ProductCode: "0010005",Qty: "1"
},{
ProductCode: "0010005",Qty: "5"
},Qty: "3"
}
]
}
解决方法
在对象上运行编码代码,我们得到:
OrderDate=10-Sep-2020&OrderID=1011539&Dated=27-feb-2021&CreatedBy=10&tblAuthorityLetterDtls=ProductCode=0010005,ProductCode=0010005,Qty=1,Qty=1&tblAuthorityLetterDtls=ProductCode=0010005,Qty=5,Qty=5&tblAuthorityLetterDtls=ProductCode=0010005,Qty=3,Qty=3
注意:
- 这个字符串是一个valid query string per RFC 3986,所以根据规范它不需要被编码。但是,您的 API 提供商 may 已对某些分隔符应用了一些假设,为它们分配了特殊含义,从而使它们“保留”。
例如,您的 API 提供商可能不允许在单个查询字符串参数中多次使用=
。当然,这只是一个例子。 - 此字符串包含重复的子值(每个
ProductCode
和Qty
出现两次)。
我建议您将整个字符串传递给 encodeURIComponent
并查看它是否有效。如果是,您可以逐渐对查询字符串的每个部分应用 encodeURIComponent
并查看有问题的部分。
否则,您必须通知您的 API 提供商。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。