踩坑1、在vue+node開發的時候,出現跨域問題,
第一步:這時候使用nginix做反向代理,解決跨域,設置如下
首先打開(E:\ruanjian\nginx-1.14.2\conf)中的 nginx.conf,進行如下設置
第二步:安裝 koa2-cors 插件,在app.js里面進行如下設置
const cors = require('koa2-cors') // 解決跨域 app.use(cors({ exposeHeaders: ['WWW-Authenticate', 'Server-Authorization', 'Date'], maxAge: 100000, credentials: true, allowMethods: ['GET', 'POST', 'OPTIONS'], allowHeaders: ['Content-Type', 'Authorization', 'Accept', 'X-Custom-Header', 'anonymous','Set-Cookie'], }))
踩坑2:當有session時,設置axios請求時攜帶cookie失效
解決為設置
axios.defaults.withCredentials = true; //配置為true
理由如下:
withCredentials:默認情況下,跨源請求不提供憑據(cookie、HTTP認證及客戶端SSL證明等)。通過將withCredentials屬性設置為true,可以指定某個請求應該發送憑據。
- 默認值為false。
- true:在跨域請求時,會攜帶用戶憑證
- false:在跨域請求時,不會攜帶用戶憑證;返回的 response 里也會忽略 cookie
當配置了 withCredentials = true
時,必須在后端增加 response 頭信息Access-Control-Allow-Origin,且必須指定域名,而不能指定為*!!!