解决微信小程序在苹果ios上协议错误
搞了个小程序,开发者工具正常,安卓正常,但是同事的苹果ios测试报错
request:fail 未能完成该操作。协议错误
看了一下,说是ios不支持http2,那就只能把http2禁用掉了。
查了资料
nginx的配置文件里
listen 443 ssl http2;
去掉http2
listen 443 ssl;
保存,还是不行。最后查了大半天,
原来同一个服务器的其他站点也不能开启http2,不然就不行,
于是把所有站点的配置都改一遍把http2去掉,终于OK了。真是神坑 - _ -
下面这一段js可以用来判断站点是否使用http2,在谷歌浏览器访问站点以后控制台执行
(function(){ // 保证这个方法只在支持loadTimes的chrome浏览器下执行 if(window.chrome && typeof chrome.loadTimes === 'function') { var loadTimes = window.chrome.loadTimes(); var spdy = loadTimes.wasFetchedViaSpdy; var info = loadTimes.npnNegotiatedProtocol || loadTimes.connectionInfo; // 就以 「h2」作为判断标识 if(spdy && /^h2/i.test(info)) { return console.info('站点使用了HTTP/2'); } } console.warn('站点没有使用HTTP/2'); })();