node+koa2+axios踩坑記


踩坑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,且必須指定域名,而不能指定為*!!!

參考如下: http://www.manongjc.com/article/36042.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM