【发布时间】:2019-03-28 15:47:30
【问题描述】:
我正在尝试了解大学项目的这种行为。
我有一个部署在谷歌云上的 react web 应用程序和一个也部署在谷歌云上的 Go 服务器。
Web 应用程序使用我的 Go 服务器提供的 API。
该应用在桌面环境和 Android 智能手机上使用 Chrome 和 Firefox 浏览器似乎运行良好,但当我在 iOS 上使用相同的浏览器时(iPhone8 ) API 调用不包含我需要在 Go 服务器中验证用户身份的 cookie。 Safari 也很好用,所以我只在我的 iPhone 上的 Chrome 和 Firefox 上看到这种行为
这些是同一个 API 的两个调用的标头,第一个使用 Safari,第二个使用 Firefox:
Safari (iOS 12.0.1)
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...
火狐 (v14.0)
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...
当我使用 fetch 发送请求时,我设置了选项 credentials: 'include' 但如您所见,第二次调用没有设置我需要的 cookie...
我错过了什么?
感谢您的帮助
【问题讨论】:
标签: javascript reactjs cookies fetch