国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

axios攜帶cookie配置詳解(axios+koa)

2024-05-06 15:43:45
字體:
來源:轉載
供稿:網友

話不多說,一個字,干!

前端配置如下:

  axios.defaults.withCredentials = true; //配置為true    axios.post('http://localhost:3000/tpzdz/vote/all', {   openid: 'oJ0mVw4QrfS603gFa_uAFDADH2Uc',   date: '2018-11-21'  }).then(function (response) {   console.log(response)  })

前端配置withCredentials = true 后端的跨域也需要配置

app.use(async (ctx, next) => { ctx.set('Access-Control-Allow-Origin', ctx.request.header.origin); ctx.set('Access-Control-Allow-Credentials', true); await next();});//防止每次請求都返回Access-Control-Allow-Methods以及Access-Control-Max-Age,//這兩個響應頭其實是沒有必要每次都返回的,只是第一次有預檢的時候返回就可以了。app.use(async (ctx, next) => { if (ctx.method === 'OPTIONS') {  ctx.set('Access-Control-Allow-Methods', 'PUT,DELETE,POST,GET');  ctx.set('Access-Control-Max-Age', 3600 * 24);  ctx.body = ''; } await next();});

實例展示完了,我們來講講都是怎么回事

withCredentials:默認情況下,跨源請求不提供憑據(cookie、HTTP認證及客戶端SSL證明等)。通過將withCredentials屬性設置為true,可以指定某個請求應該發送憑據。

默認值為false。 true:在跨域請求時,會攜帶用戶憑證 false:在跨域請求時,不會攜帶用戶憑證;返回的 response 里也會忽略 cookie

當配置了 withCredentials = true時,必須在后端增加 response 頭信息Access-Control-Allow-Origin,且必須指定域名,而不能指定為*?。?!

那么問題就來了,若是多個域名呢?
我配置的是任意域名都可以訪問,但是這樣并不安全。建議做法是創建一個數組,每次去檢測域名是否在數組內,存在則繼續

講到這里了,那么延伸一下 post請求下的options

options 它是一種探測性的請求,通過這個方法,客戶端可以在采取具體資源請求之前,決定對該資源采取何種必要措施,或者了解服務器的性能。

前臺跨域post請求,由于CORS(cross origin resource share)規范的存在,瀏覽器會首先發送一次options嗅探,同時header帶上origin,判斷是否有跨域請求權限,服務器響應access control allow origin的值,供瀏覽器與origin匹配,如果匹配則正式發送post請求。

每一次非簡單請求都會實際上發出兩次請求,一次預檢一次真正請求,這就比較損失性能了。

所以就有了2圖的中間件。 Access-Control-Max-Age: 86400

設置一個相對時間,在該非簡單請求在服務器端通過檢驗的那一刻起,當流逝的時間的毫秒數不足Access-Control-Max-Age時,就不需要再進行預檢,可以直接發送一次請求。

但是為什么會有兩個中間件的設置呢,推薦文章 http://www.survivalescaperooms.com/article/135924.htm 很細致哦

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 寿宁县| 台东市| 泸溪县| 建德市| 缙云县| 鄂尔多斯市| 稻城县| 三门县| 兴文县| 揭西县| 保定市| 育儿| 渑池县| 张家口市| 黔南| 临武县| 墨江| 浏阳市| 达拉特旗| 东台市| 区。| 尼勒克县| 大方县| 安康市| 柞水县| 内江市| 合山市| 临颍县| 奉贤区| 奉新县| 大城县| 体育| 五家渠市| 正定县| 嘉峪关市| 合肥市| 玉林市| 普洱| 芦山县| 伽师县| 黄平县|