鍍金池/ 問答/HTML/ 前端獲取不到后端設置的cookie。

前端獲取不到后端設置的cookie。

在登錄界面:輸入賬號密碼向后端調登錄接口,后端設置一個key 為userInfo的cookie。
但是,問題來了。
在vue項目中,本地啟動的服務器中,登錄的時候沒有這個userInfo這個cookie,但是打包后放到測試服務器上,登錄的時候就有這個userInfo了。
請問大佬們,這是哪里出的問題?
大佬們快幫幫我,要不后端要和我干架了。。。。

回答
編輯回答
忠妾

一般這種情況多是因為跨域,路徑等等問題。

2018年3月19日 13:00
編輯回答
久不遇

修改host文件把域名指向自己。然后部署nginx,接口指到后臺那邊,頁面指到自己本地。

2017年5月13日 19:34
編輯回答
嫑吢丕

后端檢查一下cookie的存儲位置?

2017年12月24日 21:59
編輯回答
神曲

打開network看看響應到底有沒有返回cookie,如果沒有直接扔臉上不就完了么?

2017年3月23日 05:49
編輯回答
詆毀你

本地啟動,你接口是代理過去的?

2017年3月30日 03:09
編輯回答
任她鬧

本地的服務器和接口的服務器不是同一個域吧.
舉個栗子:
你的本地服務器是localhost:8080, 然鵝你調用的接口地址是192.168.0.111/api/login這個接口, 后端在處理時它只能將 cookie 存入后端接口的那個域中, 也就是192.168.0.111這里.
這就解釋了本地獲取不到, 然鵝在測試服務器上可以. 放在測試服務器上就相當于都在后端服務器里面跑起來的web服務.
大致是這個意思

2017年7月15日 12:15
編輯回答
別逞強

看登陸的接口調試,一步步進行梳理

2018年1月22日 14:20
編輯回答
喜歡你

首先肯定是跨域了,跨域時部分瀏覽器默認不攜帶cookie,因此為了攜帶cookie需要設置一下xmlhttprequest的withCrendetails屬性,使用vue-resouce時設置如下

Vue.http.options.credentials = true

用axios時,可以在攔截器中設置如下

axios.interceptors.request.use((config) => {
    config.withCredentials = true
    return config
}, (error) => {
    return Promise.reject(error)
})

其次后端允許跨域的header也要設置一個響應的東西

'Access-Control-Allow-Headers' 'X-Requested-With';

同時后端設置需要注意一點,下面這個頭不能設置成*號了,要設置成你的域名

'Access-Control-Allow-Origin' '*';

在詳細點的可以看看我寫的一篇博客https://www.cnblogs.com/heior...

2018年6月5日 15:49