2017-02-21 10 views
3

我能夠使用這個代碼片斷從Graphql送餅乾頭在查詢數據:餅乾沒有得到通過relayjs在手機瀏覽器通過了graphql要求

Relay.injectNetworkLayer( new Relay.DefaultNetworkLayer(GQL_URL, { credentials: 'same-origin', }));

這非常適用於桌面瀏覽器,但不是來自手機。

但是,當我在手機上打開我的網站(或使用任何移動模型在Chrome中模擬)時,cookies沒有通過。

是否有任何移動瀏覽器的cookie設置處理?

此外,在分析cookies重新獲得通過非graphql休息API調用移動。

PS:這可能不相關,但在桌面的情況下,餅乾越來越在不同的域名存儲(因爲對於不同的請求多個域):

abc.domain.com - > COOKIE1,COOKIE2 ...等 def.domain.com - > COOKIE1,COOKIE2 ..等

但在移動存儲Cookie對相同的主機名:

abc.domain.com - > COOKIE1,COOKIE2 ...等

更新:來源標頭在移動的情況下是不同的。如果有幫助

任何幫助,將不勝感激。

回答

1

找到解決方案。更改憑證共享跨域餅乾relayjs:

Relay.injectNetworkLayer( new Relay.DefaultNetworkLayer(GQL_URL, { credentials: 'include', }));

在桌面的情況下,IFRAME是越來越加載在對比手機版,我們正在做的XHR請求,之後將在DIV的內容。 因此,在iframe的情況下cookie正在被存儲在正確的域中,因爲來自正確的原點,但在xhr原點的情況下保持不變。所以需要通過跨域Cookie來訪問。

感謝您的幫助!