杰者的备忘录

当前位置:   网站首页 >> 微信

解决微信小程序在苹果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');
})();


发表我的评论

Hi,您需要填写昵称和邮箱!

  • 必填项