axios express設置跨域容許傳遞cookie

一般咱們後端這樣設置跨域頭

服務端將響應頭設置成Access-Control-Allow-Origin:域名前端

有時,前端須要向後端發送cookie來進行身份驗證

此時,服務器還需向響應頭設置Access-Control-Allow-Credentials:true,表示跨域時,容許cookie添加到請求中。
另外設置Access-Control-Allow-Credentials:true後,要將Access-Control-Allow-Origin指定到具體的域,不然cookie不會帶到客戶端。ios

在express中如何設置

npm install cors
var cors = require('cors')
app.use(cors({credentials: true, origin: 'http://localhost:3002'}));

XMLHttpRequest的withCredentials標誌設置爲true,從而使得Cookies能夠隨着請求發送。由於這是一個簡單的GET請求,因此瀏覽器不會發送一個「預請求」。可是,若是服務器端的響應中,若是沒有返回Access-Control-Allow-Credentials: true的響應頭,那麼瀏覽器將不會把響應結果傳遞給發出請求的腳步程序,以保證信息的安全express

在axios中這樣設置

axios.defaults.withCredentials = true
相關文章
相關標籤/搜索