两个 HTML 分别为:
http://a.com/send.html
http://b.com/receive.html
需求是在 send.html 中将超过 255 字节的字串例如"aaaaaa..." 发送至 receive.html
用户首先打开 http://a.com/send.html 浏览器跳转并最终停留在 http://b.com/receive.html 并在该页面显示"aaaaaa..."
最合理的方法是在 send.html 制作一个自动提交的 form 至 receive.html
但是因为 receive.html 不支持服务器脚本,所以无法接收 POST 类型数据,同时 GET 类型考虑到浏览器兼容性,对于超过 255 字节的数据可能会有问题?
求教各位有什么更为合理的实现方法,谢谢!
http://a.com/send.html
http://b.com/receive.html
需求是在 send.html 中将超过 255 字节的字串例如"aaaaaa..." 发送至 receive.html
用户首先打开 http://a.com/send.html 浏览器跳转并最终停留在 http://b.com/receive.html 并在该页面显示"aaaaaa..."
最合理的方法是在 send.html 制作一个自动提交的 form 至 receive.html
但是因为 receive.html 不支持服务器脚本,所以无法接收 POST 类型数据,同时 GET 类型考虑到浏览器兼容性,对于超过 255 字节的数据可能会有问题?
求教各位有什么更为合理的实现方法,谢谢!
16 条回复 • 2018-12-04 15:50:34 +08:00
|
1
fe619742721 2018 年 12 月 4 日 via iPhone |
|
2
fe619742721 2018 年 12 月 4 日 via iPhone
哈哈,这是之前一个朋友讨论不安全跨域方式的时候提到的,奇技淫巧,安全性很差
|
|
3
loading 2018 年 12 月 4 日 via Android
想了好几个,几乎都要用到 js,我看你这提问的描述,我还是不回答了。
等你写清楚,还有你水平如何再回答吧。 |
|
4
GDC 2018 年 12 月 4 日 via iPhone 你要兼容到多老的浏览器?阿里云的购物车页面把整个商品信息 get 请求到下一个页面,255 的限制是很老的浏览器了
|
|
5
Tetsuchou 2018 年 12 月 4 日 via iPhone
压缩一下?
|
|
6
qgy18 2018 年 12 月 4 日 via iPhone
最古老的 IE 允许的 URL 长度难道不是 2083 字节么?
|
|
9
loading 2018 年 12 月 4 日 via Android 简单就是用 js,然后跳 receive.html#aaaaaa
如果长度不够,能利用第三方短链接服务。 新浏览器长度已经不是 255 了。 |
|
10
nikoo OP @fe619742721 测试可行,,,这个操作真的非常秀!用在生产环境会有什么毛病吗?
|
|
12
wuhaoworld 2018 年 12 月 4 日 |
|
13
GDC 2018 年 12 月 4 日 via iPhone @nikoo
用 hash 并不会把 # 后面的内容传给后端,而且 js 并没有原生获取 get 参数的方法,只能对整个 url 做解析。 总的来说你这个情况,最简单的方法就是把要传给的内容放在一个 json 对象中,转成字符串,再 base64 解决一下字符问题,然后一起放在 # 后面给下一个页面。 |
|
14
GDC 2018 年 12 月 4 日 @nikoo 或者如果你只有一个参数要传递、而且只是文字内容,就直接用 btoa() 函数套个 base64 传给下一页。后面的页面用 window.location.hash 就能读取到 # 后面的内容,用 atob() 解析一下 base64 就好啦
|
|
15
AV1 2018 年 12 月 4 日
sessionStorage
localStorage cookie |
|
16
AV1 2018 年 12 月 4 日 via Android
没看清楚,要跨域的话,可能要用 HASH 更好了。
|