Open imfenghuang opened 6 years ago
你好,想向你请教下你在iPhone上的302代码是怎么写的呢,我一个应用无论安卓还是iOS,使用302重定向后页面都不会重新刷新,如果你看到了,麻烦解答下,谢谢。
你好,想向你请教下你在iPhone上的302代码是怎么写的呢,我一个应用无论安卓还是iOS,使用302重定向后页面都不会重新刷新,如果你看到了,麻烦解答下,谢谢。
@tsmazhirong php 代码进行的重定向。有进行参数的调整,重新构建url。
经过测试在微信内部浏览器里面 使用ngnix 301 转发到server.domain.com时,必须携带一个无意义的参数 如http://domai.com?= 才能访问,当直接访问 http://domain.com 是无法打开的,头大
我不懂得写代码,但是你这个问题应该是缓存导致的,因为微信内置浏览器有非常严重的缓存问题,因为没有缓存的话会导致微信的服务器占用很高,所以你每一次新的请求必须带上一个不同的参数,我公司的开发好像在新的请求中会带上一个没有意义的参数在后面,代码怎么实现就不知道了。
发送自 Windows 10 版邮件https://go.microsoft.com/fwlink/?LinkId=550986应用
发件人: ECH2Omailto:notifications@github.com 发送时间: 2020年11月13日 22:45 收件人: imfenghuang/blogmailto:blog@noreply.github.com 抄送: tsmazhirongmailto:tsmazhirong@hotmail.com; Mentionmailto:mention@noreply.github.com 主题: Re: [imfenghuang/blog] 微信安卓版本内置浏览器重定向白屏问题 (#14)
经过测试在微信内部浏览器里面 使用ngnix 301 转发到server.domain.com时,必须携带一个无意义的参数 如http://domai.com?= 才能访问,当直接访问 http://domain.com 是无法打开的,头大
― You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/imfenghuang/blog/issues/14#issuecomment-726803721, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK7PL6ID73CPABKQM4WUWK3SPVA7FANCNFSM4E3GWT3Q.
但是你这个不应该白屏,就算是缓存问题,你这个url应该是可以正常访问才对的,建议你抓包看看数据包,你这个转发的地址是否会过期呢?
发送自 Windows 10 版邮件https://go.microsoft.com/fwlink/?LinkId=550986应用
发件人: ECH2Omailto:notifications@github.com 发送时间: 2020年11月13日 22:45 收件人: imfenghuang/blogmailto:blog@noreply.github.com 抄送: tsmazhirongmailto:tsmazhirong@hotmail.com; Mentionmailto:mention@noreply.github.com 主题: Re: [imfenghuang/blog] 微信安卓版本内置浏览器重定向白屏问题 (#14)
经过测试在微信内部浏览器里面 使用ngnix 301 转发到server.domain.com时,必须携带一个无意义的参数 如http://domai.com?= 才能访问,当直接访问 http://domain.com 是无法打开的,头大
― You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/imfenghuang/blog/issues/14#issuecomment-726803721, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK7PL6ID73CPABKQM4WUWK3SPVA7FANCNFSM4E3GWT3Q.
浏览器里面是可以访问的,在微信里抓包显示的是
CONNECT domain.com:443 HTTP/1.1 Host: domain.com User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.18(0x17001229) NetType/WIFI Language/zh_CN Connection: keep-alive
该记录由 Stream 抓取,仅用于分析和学习,可 AppStore 搜索『抓包』下载,面向开发者永久免费使用。
它根本不会执行跳转动作,就像是微信故意截断请求了一样,目前想到个办法就是直接用 html 写个中间页,nginx直接解析到 domain.com 访问到后用 js 转发,domaon.com -> server.domain.com
好像在微信内置流量器访问要带着cookie,你这个连接是跳转到哪里的服务器呢
发送自 Windows 10 版邮件https://go.microsoft.com/fwlink/?LinkId=550986应用
发件人: ECH2Omailto:notifications@github.com 发送时间: 2020年11月13日 23:02 收件人: imfenghuang/blogmailto:blog@noreply.github.com 抄送: tsmazhirongmailto:tsmazhirong@hotmail.com; Mentionmailto:mention@noreply.github.com 主题: Re: [imfenghuang/blog] 微信安卓版本内置浏览器重定向白屏问题 (#14)
浏览器里面是可以访问的,在微信里抓包显示的是
CONNECT domain.com:443 HTTP/1.1 Host: domain.com User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.18(0x17001229) NetType/WIFI Language/zh_CN Connection: keep-alive
(null)
该记录由 Stream 抓取,仅用于分析和学习,可 AppStore 搜索『抓包』下载,面向开发者永久免费使用。
它根本不会执行跳转动作,就像是微信故意截断请求了一样,目前想到个办法就是直接用 html 写个中间页,domain.com 访问到后用 js 转发,domaon.com -> server.domain.com
― You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/imfenghuang/blog/issues/14#issuecomment-726813494, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK7PL6J2VTPGPYR7FB6WFC3SPVDBBANCNFSM4E3GWT3Q.
微信确实是有很大的缓存问题,不过不是缓存在它的服务端,而是它的客户端上面,它 302
,301
跳转不过去也应该是因为它的 x5 浏览器内核还有它内部的一套机制,我已经解决了,就是用的我说面上到的方面,我们放弃传统的使用 nginx
的 302
or 301
跳转 (这里把看做不支持301跳转算了), 用 html 作为一个中间页实现 nginx
的 302
301
功能 下面是实现代码
server
{
listen 80;
server_name yourdomian.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/buttonupup.com;
}
<html>
<script type="text/javascript">
window.location.href = "https://server.yourdomian.com" + window.location.href.split(window.location.origin)[1];
</script>
</html>
错了 ,真正的原因是两个域名都要 加 https 证书,或者相同协议:poop:
上周有个需求,对 URL query 中指定参数有值的时候,进行一步 set cookie 操作,同时,为保证后面的代码能获取对应的 cookie,需要对当前页面 URL 进行一次重定向。 直接使用 302 重定向,在 iOS 微信中页面跳转正常,但是,在安卓微信中会出现重定向后白屏的问题,需要重新刷新页面才能正常显示。
尝试在前端通过 js 脚本跳转,在安卓微信内置浏览器中也无法正常跳转;
尝试使用 meta refresh 进行页面跳转也宣告失败;
后来通过搜索资料发现,安卓微信内置浏览器对于重定向页面有一定缓存,导致
location.reload()
失效。如果页面 URL 不变,则可能因为缓存原因导致重定向失败,发现这一情况后,重新使用 302 重定向,因为判断 URL query 某个参数有值时,进行写 cookie 操作,之后这个 URL query 参数就没什么作用了,因此,重定向的 URL 可以是当前页面去掉了某具体参数的 URL,之后,再在前端通过history.replaceState
来调整 URL,让其带上该具体参数即可。补充:后续会尝试在前端构建不同的 URL 进行跳转,比如给 URL 增加时间戳等;
参考文档:安卓微信浏览器location.reload()刷新无效