在制作页面跳转过程中,我们会发现只要url
传递的参数值中包含 &
,就会自动截断,而&
后面的参数变量的值也丢失不见了,比如这段跳转到携程的地址:
https://you.ctrip.com/sight/hangzhou14/49894.html?AllianceID=xxx&sid=xxx&ouid=&app=0101X00&Language=en
在使用location
和url
的方法跳转时,会发现跳转后的地址是这样的:
https://you.ctrip.com/sight/hangzhou14/49894.html?AllianceID=xxx
对比可以发现&后面的参数全部丢失,那么问题出在哪呢?
根据热心网友jingxian 的在java中测试:
String charEncode = java.net.URLEncoder.encode("&"); System.out.println("字符& 转译后的值为:" + charEncode ); //输出:%26
所以,最后得出的解决方法就出现了---在传送参数前, 将&
全部替换为%26
eg:
var url = "https://you.ctrip.com/sight/hangzhou14/49894.html?AllianceID=xxx&sid=xxx&ouid=&app=0101X00&Language=en"
做如下修改即可:
var url = "https://you.ctrip.com/sight/hangzhou14/49894.html?AllianceID=xxx%26sid=xxx&ouid=%26app=0101X00%26Language=en"
至此,问题得到了圆满解决,跳转后一切参数均没有丢失!
猜你喜欢 白醋瓶子怎么清洗才干净 白醋瓶子清洗干净的小妙招 如何正确的挑选枸杞子 枸杞选择方法 若无其事造句 若无其事造句三年级 距圆明园十里有村曰谢庄翻译 鲜切白菊花的种植方法 鲜切白菊花大棚种植技术 2022年北京军事博物馆开放了吗 北京军事博物馆现在对外开放吗 2022厦门天竺山徒步大会报名时间 白萝卜虾蓉粥的做法 怎样做白萝卜虾蓉粥