小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在IOS14跟7.0.18版本的微信上面请求无法携带跨域cookie,这个要怎么解决?设置cookie属性samesite=none吗?
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
iOS 14 后,基于对用户隐私的保护,苹果对于 Safari 及第三方 App 内 WKWebview 内的 ITP 策略进一步收紧,网页内发起的跨域 xhr 请求,会出现第三方 Cookie 无法设置的情况。
详细可见
* https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/
* https://developer.apple.com/videos/play/wwdc2020/10188/?time=1533
当前 iOS 系统没有面向开发者或用户开放对于该策略的禁用或配置能力,微信内打开的网页会一并受该策略影响,并且无法提供可替代的解决方案。
建议微信网页开发者通过调整 ajax 请求 URL 为相同 site, 如 https://www.example.com 发起请求至 https://login.example.com ; 或者通过引入后台 API 来解决跨域请求数据共享的需求;
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
遇到相同的问题,查资料发现。在iOS 14和macOS Big Sur中,所有WKWebView应用程序默认都启用了ITP,详情:https://developer.apple.com/videos/play/wwdc2020/10188/?time=1533
iOS微信客户端没像 safari 浏览器提供关闭「阻止跨站跟踪」的开关,所以这种场景 cookie 跨域在 iOS14 微信基本没找到解决的办法
最终解决,使用了微信官方提供的适配变更方案,过程改动的逻辑很大,但可以从根本上避免了跨域的情况,感觉能很好地解决了登录问题
对于IOS14的cookie跨域问题解决办法有2种:
1、使用token进行跨域信息传递。
2、更换H5页面域名,顶级域名一致则不存在跨域问题。
因第一种改动量较大,所以采用第二种方式,目前用户已经可以正常使用。
顶级域名改为一致后解决
cookie属性samesite=none设置都不行,同求解决方案
背景:我们有一个H5的页面被其他公司的微信公众号内的某个页面嵌入了,在iOS设备上使用我们的H5页面时,会偶尔发生用着用着LocalStorage被清掉的情况,导致API调用错误,Debug后确定是在iOS上微信或者浏览器内核的某种机制,会自动清除掉LocalStorage,导致功能异常。
希望有过这方面实践的同学提供一些建议和帮助~非常感谢!
环境:IOS15~, 微信公众号,iframe嵌入我们的h5页面
顶级域名改为一致,还要使用Secure and HttpOnly cookie才能
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
iOS 14 后,基于对用户隐私的保护,苹果对于 Safari 及第三方 App 内 WKWebview 内的 ITP 策略进一步收紧,网页内发起的跨域 xhr 请求,会出现第三方 Cookie 无法设置的情况。
详细可见
* https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/
* https://developer.apple.com/videos/play/wwdc2020/10188/?time=1533
当前 iOS 系统没有面向开发者或用户开放对于该策略的禁用或配置能力,微信内打开的网页会一并受该策略影响,并且无法提供可替代的解决方案。
建议微信网页开发者通过调整 ajax 请求 URL 为相同 site, 如 https://www.example.com 发起请求至 https://login.example.com ; 或者通过引入后台 API 来解决跨域请求数据共享的需求;
遇到相同的问题,查资料发现。在iOS 14和macOS Big Sur中,所有WKWebView应用程序默认都启用了ITP,详情:https://developer.apple.com/videos/play/wwdc2020/10188/?time=1533
iOS微信客户端没像 safari 浏览器提供关闭「阻止跨站跟踪」的开关,所以这种场景 cookie 跨域在 iOS14 微信基本没找到解决的办法
最终解决,使用了微信官方提供的适配变更方案,过程改动的逻辑很大,但可以从根本上避免了跨域的情况,感觉能很好地解决了登录问题
对于IOS14的cookie跨域问题解决办法有2种:
1、使用token进行跨域信息传递。
2、更换H5页面域名,顶级域名一致则不存在跨域问题。
因第一种改动量较大,所以采用第二种方式,目前用户已经可以正常使用。
顶级域名改为一致后解决
cookie属性samesite=none设置都不行,同求解决方案
背景:我们有一个H5的页面被其他公司的微信公众号内的某个页面嵌入了,在iOS设备上使用我们的H5页面时,会偶尔发生用着用着LocalStorage被清掉的情况,导致API调用错误,Debug后确定是在iOS上微信或者浏览器内核的某种机制,会自动清除掉LocalStorage,导致功能异常。
希望有过这方面实践的同学提供一些建议和帮助~非常感谢!
环境:IOS15~, 微信公众号,iframe嵌入我们的h5页面
顶级域名改为一致,还要使用Secure and HttpOnly cookie才能