例子:
请求接口url中query参数中带的是JSON字符串,直接请求是会报错的。
// 获取设备列表,带筛选条件
GET
/lift/devices?pageNo=1&pageSize=10&query={'title':'输入框条件','theOnline':'全部-1,在线1,下线0','status':'全部-1,启用1,停用0','type':'传感器类型'}
解决方案
使用 Javascript 中的 encodeURI() 方法,可把字符串作为 URI 进行编码。
let url = 'http://192.168.100.89:9090/gi/test/devices?query={"title":"0026"}'
let encodedURL = encodeURI(url)
this.$http.get(encodedURL).then(res => {
console.log(res)
})
小程序
场景:从一个页面导航到另一个页面需要携带参数,参数中含有问号(?),会导致后续参数丢失。
使用escape转码 和 unescape解码
let data = escape(“4?4”)
wx.navigateTo({
url: “…/about/about?a=” + data
})
// 跳转后的页面
onLoad: function (options) {
console.log(options)
let a = options.a
a = unescape(a)
console.log(a)
}