评论

解决微信小程序在7.0.8及电脑版上的cookie问题

微信小程序在7.0.8版本及电脑版上response header的Set-Cookie参数变成小写,可能导致通过直接获取res.header['Set-Cookie']来存储Cookie的方法不可用

更正:事后查证,此问题应是 HTTP/2 特性所导致。

微信小程序在7.0.8版本及电脑版上,response header的Set-Cookie参数变成小写,可能导致通过直接获取res.header['Set-Cookie']来存储Cookie的方法不可用。

这个问题在7.0.8上首次出现(我当时使用的是测试版),而电脑版长期有这个问题(我原本以为是电脑版还不完善导致不兼容,直到这个问题在手机版上也出现了)。

解决方案:
通过先遍历res.header,把参数转小写后判断。

let found = false
for(let header in res.header){
	if(header.toLocaleLowerCase() == 'set-cookie'){
		COOKIE = res.header[header]
		found = true
		break
	}
}
if (!found) {
	fail(res)
	return
}
最后一次编辑于  06-13  
点赞 2
收藏
评论

3 个评论

  • O2
    O2
    2019-12-18

    我们解决方法是先获取小写“set-cookie”,如果是空的再获取大写“Set-Cookie”!目前正在测试!

    2019-12-18
    赞同 1
    回复
  • 支颐听秋水问蜉蝣~
    支颐听秋水问蜉蝣~
    07-29

    之前遇到过同样问题也是,改成大小后好了

    07-29
    赞同
    回复
  • 〰Astorm
    〰Astorm
    2019-12-19

    我也懵逼了,大小写的问题没了。然后发现手机端和电脑端拿到的cookie格式不一样。。。截图是电脑版小程序请求拿到cookie的格式。跟开发工具和手机版是不一样的

    2019-12-19
    赞同
    回复 1
    • TLingC
      TLingC
      2019-12-20
      可以打印一下res.header看看
      2019-12-20
      回复
登录 后发表内容