javascript - Cookies 没有通过 relayjs 在 graphql 请求中传递到移动浏览器中

标签 javascript reactjs cookies graphql relayjs

我可以在使用此代码段从 Graphql 查询数据时在 header 中发送 cookie:

Relay.injectNetworkLayer( 新的 Relay.DefaultNetworkLayer(GQL_URL, { 凭据:'同源', }));

这适用于桌面浏览器,但不适用于移动设备。

但是当我在移动设备中打开我的网站(或使用任何移动模型在 chrome 中模拟)时,cookie 没有通过。

是否有针对 cookie 设置的任何移动浏览器特定处理?

此外,在分析 cookie 后,在移动设备中重新通过非 graphql rest api 调用。

P.S.:这可能不相关,但在桌面的情况下,cookie 存储在不同的域名下(因为有多个域用于不同的请求):

abc.domain.com -> cookie1, cookie2...等 def.domain.com -> cookie1, cookie2..等

但在移动 cookie 中存储的是同一个主机名:

abc.domain.com -> cookie1、cookie2...等

更新:原始 header 在移动设备上有所不同。如果有帮助

如有任何帮助,我们将不胜感激。

最佳答案

找到解决方案。更改凭据以在 relayjs 中共享跨域 cookie:

Relay.injectNetworkLayer( 新的 Relay.DefaultNetworkLayer(GQL_URL, { 凭据:“包括”, }));

在桌面的情况下,iframe 被加载与移动版本形成对比,我们正在执行 xhr 请求并在之后在 div 中插入内容。 因此,在 iframe 的情况下,cookie 是针对正确的域存储的,因为来自正确的来源,但在 xhr 的情况下,来源保持不变。所以需要通过跨域cookie访问。

感谢您的帮助!

关于javascript - Cookies 没有通过 relayjs 在 graphql 请求中传递到移动浏览器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379873/

相关文章:

javascript - 如何在react中添加setState

reactjs - 如何在 React/html5 中播放 wav(从 URL 加载)?

java - 将 JSON 格式的 cookie 添加到响应中 - Servlet

javascript - 从 javascript 调用服务器端 python 脚本

php - 同时选择+文本输入表单字段?

javascript - 如何获取url AngularJS的最后一部分

reactjs - 如何在不使用 getStaticPaths 的情况下从 getStaticProps 中的 url 获取参数?

javascript - 获取多维数组中的值

javascript - cookie 安全吗?

cookies - react 本地获取Cookie