Chrome和Firefox for iPhone中未设置Javascript获取Cookie

Chrome和Firefox for iPhone中未设置Javascript获取Cookie,javascript,reactjs,cookies,fetch,Javascript,Reactjs,Cookies,Fetch,我试图了解大学项目中的这种行为 我在谷歌云上部署了react web应用程序,在谷歌云上也部署了Go服务器 web应用程序使用我的Go服务器提供的API 在桌面环境和Android智能手机上使用Chrome和Firefox浏览器时,该应用程序似乎运行得很好,但当我在iOS(iPhone8)上使用相同的浏览器时,API调用不包含我在Go服务器中验证用户身份所需的cookie。Safari也很管用,所以我只在iPhone上的Chrome和Firefox上看到这种行为 以下是同一API中两个调用的标题

我试图了解大学项目中的这种行为

我在谷歌云上部署了react web应用程序,在谷歌云上也部署了Go服务器

web应用程序使用我的Go服务器提供的API

在桌面环境和Android智能手机上使用ChromeFirefox浏览器时,该应用程序似乎运行得很好,但当我在iOS(iPhone8)上使用相同的浏览器时,API调用不包含我在Go服务器中验证用户身份所需的cookie。Safari也很管用,所以我只在iPhone上的Chrome和Firefox上看到这种行为

以下是同一API中两个调用的标题,第一个调用使用Safari,第二个调用使用Firefox:

Safari(iOS 12.0.1)

Firefox(v14.0)

当我使用fetch发送请求时,我设置了选项credentials:'include',但是正如您所看到的,第二个调用没有设置我需要的cookie

我错过了什么


谢谢你的帮助

我想你可能遇到了

关键在于:

Safari附带了一个保守的cookie策略,该策略将cookie写入仅限于用户选择(“导航到”)的页面。此默认保守策略可能会混淆尝试写入cookie的基于帧的站点,并导致失败

一个稍微复杂的解决方法是使用iframe加载设置cookies的页面,而不是使用JavaScript


根据你想要达到的目标,也许饼干并不是你首先需要的。例如,当我遇到同样的问题时,我最终改用了cookies——但我只想要用于遥测的cookies;指纹识别肯定不适合cookies可以覆盖的所有用例。

但Safari确实有效,它可以设置cookie。Firefox和Chrome没有!您应该知道,为iPhone编写的第三方浏览器基本上使用的是Safari Mobile渲染引擎的“嵌入式”版本,也就是说,如果您在iPhone上启动Chrome/Firefox/Edge,它们基本上仍然是Safari Mobile,只是具有不同的UI,并且可能比Safari Mobile对系统的访问更受限(第1方应用)本身。因此,如果你只在iPhone上遇到问题(这是我从你最初的问题中了解到的),即使只在第三方浏览器中,那么我建议的链接可能仍然值得查看:)
GET /example/users HTTP/1.1
Host: api-server.com
Connection: close
Accept-Language: en-gb
Cookie: default=MTU0MDM3MTA0... /*COOKIE IS SET HERE*/
Dnt: 1
Origin: https://example.com
Referer: https://example.com/
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_0_1 like Mac OS X) 
            AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 
            Mobile/15E148 Safari/604.1
X-Cloud-Trace-Context: 38640...
GET /example/users HTTP/1.1
Host: api-server.com
Connection: close
Accept-Language: en-gb
Origin: https://example.com
Referer: https://example.com/
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 12_0_1 like Mac OS X) 
            AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/14.0b12646 
            Mobile/16A404 Safari/605.1.15
X-Cloud-Trace-Context: cb5ff...