记录微信浏览器里word链接点击没反应的bug
有用户反应点击下载附件时没有反应,让用户把该下载链接复制到微信对话框中,发现点击该链接仍然无反应,但是在内置的手机浏览器中打开是正常的而且可以下载。
链接地址,有需要的可以拿去进行测试:
http://file5.igrow.cn/2018/12/18/0b81c7b1c293bbd3c1808ccf4f009d2a.doc
step1:
把上面那个链接拿过来测试,公司所有人电脑端的浏览器都可以点开,再进行手机端测试,大部分人的手机都可以正常点开,只有一款诺基亚X7点击没反应,于是进行抓包分析
step2:
拿诺基亚X7和正常的手机行对比测试,打开同一个链接,返回的状态码都是206,206的解释如下:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/206

所以微信浏览器加载上述那个word时,自动添加了range请求头,所以服务器返回的是范围响应,就有了206
再继续进行分析,2个手机发起的请求头分别如下(注:点开的是同一个链接):


对比分析上面2个请求,发现range的范围有差异,同一个请求,不同的手机在微信里打开,微信浏览器自动添加的range请求头居然不一样?!
继续翻文档,发现range的请求范围在MDN文档里的写法是:

那我这个Range: bytes=4344-4344感觉只取了一个字节的数据,但是居然可以正常打开图片。。。
为了重现该写法,用crul进行range范围测试:
新建一个txt文件,内容只有hello,world,共11个字节,

启动一个本地服务器,用来读取该文件,然后用curl进行访问,按照MDN标准的range写法测试,返回的结果如下,content-length为11

再用微信浏览器帮我添加的range写法测试:

只返回了一个字节的数据,那为什么微信浏览器只取一个数据却可以正常显示图片呢?先记录下,有空了再继续研究吧。。
记录微信浏览器里word链接点击没反应的bug的更多相关文章
- 微信浏览器里location.reload问题
微信浏览器里location.reload问题会导致有时候post数据丢失.建议不要用此方式,尽量ajax方式获取或不要为了获取新的UI而刷新页面 2015-12-26 00:51:34array ( ...
- 微信浏览器的html5页面显示配置等问题汇集 1,禁止微信浏览器分享页面链接 (定点更新)
公司新需求,要求从安卓IOS应用分享到微信的链接页面不允许二次转发,所以开始编程第一步,上网找资料... 网上大神就是多,不消两分钟,找到方案,很简单,上代码先: wx.config({ debug: ...
- 微信浏览器里在底部的输入框,ios11的不会被遮盖、10.1会被盖住
/** * 由于ios10 和 ios11 版本之间的差异,所以先判断ios系统版本之后再做处理 */ let str = navigator.userAgent.toLowerCase(); let ...
- 在微信浏览器里使用js或jquery实现页面重新刷新
function refresh() { var random = Math.floor((Math.random() * 10000) + 1); var url = decodeURI(windo ...
- 微信内点击链接或扫描二维码可直接用外部浏览器打开H5链接的解决方案
很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们使用微信跳转浏览器接口实现跳转功能即可. 简单的处理方案 1. 用浏览器打开我们需要用到的 ...
- 实现微信浏览器内打开App Store链接(已被和谐,失效了)
微信浏览器是不支持打开App Store 页面的,不知道微信为什么这么做.比如你页面写 <a href=”http://itunes.apple.com/us/app/id399608199″& ...
- 微信浏览器返回刷新,监听微信浏览器返回事件,网页防复制,移动端禁止图片长按和vivo手机点击img标签放大图片
以下代码都经过iphone7,华为MT7 ,谷歌浏览器,微信开发者工具,PC端微信验证.如有bug,还请在评论区留言. demo链接:https://pan.baidu.com/s/1c35mbjM ...
- 微信浏览器禁止app下载链接的两种处理方法
最近替朋友放一个微信下载链接,通过二维码扫描下载. 通过扫描二维码下载APP已成为一个非常方便的方式,微信也成为扫描二维码重要的工具,但是扫描后微信浏览器会对APK和appStore的链接进行屏蔽,导 ...
- vivo手机的坑-禁止微信浏览器网页点击图片,图片会自动放大
这个坑让我郁闷极了,之前我的手机在微信浏览器打开网页点击图片时,啥事也没有 现在,咋回事,变了呢! 现在我打开微信浏览器网页面html,点击一个img标签的图片,图片会自动满屏放大,吓死宝宝了.其他人 ...
随机推荐
- jquery.cookie.js用法详解
创建一个会话cookie: $.cookie(‘cookieName’,'cookieValue’); 注:当没有指明cookie时间时,所创建的cookie有效期默认到用户浏览器关闭止,故被称为会话 ...
- WPF 数据模板使用值转换器
<Window x:Class="CollectionBinding.MainWindow" xmlns="http://schemas.micros ...
- ASP CRUD
//UserInfoList.html <!DOCTYPE html> <html><head><meta http-equiv="Content- ...
- C# 不重启程序修改并保存配置文件(appSettings节点)
原文:C# 不重启程序修改并保存配置文件(appSettings节点) private static void UpdateAppConfig(string newKey, string newVal ...
- TinyMCE插件CodeSample前后端应用
后端使用插件CodeSample方法: <html> <textarea id="editor_id" name="content" plac ...
- php如何去掉二维数组中重复的元素
$arr=array( "1"=>array("a","b "), "2"=>array("a&q ...
- android 获取 cpu 频率信息
cpu的频率信息可以在/sys/devices/system/cpu/cpu0/cpufreq/路径下读取 比如最高频率路径为:/sys/devices/system/cpu/cpu0/cpufreq ...
- /\B(?=(?:\d{3})+$)/g 一条令人费解的正则表达式
网上浏览博客看到要用JavaScript正则表达式解决一个功能, 要在数字中间插入逗号, 用来表示书面的金额写法. JS代码是这样子的 let test1 = '1234567890' let for ...
- C#图片灰度处理(位深度24→位深度8)
#region 灰度处理 /// <summary> /// 将源图像灰度化,并转化为8位灰度图像. /// </summary> /// <param name=&qu ...
- memcached的使用一
1.安装memcached 需要一个memcache.exe文件,打开cmd窗口,切换到可执行文件目录,执行memcache -的install命令. 2.连接服务 做测试可以打开电脑的telnet ...