egg-cors 開啓:前端
egg-cors 配置:vue
這是目前用的比較多的插件,用來解決跨域問題。node
可是我在實際項目中,有的需求並不能知足,因此我以爲egg-cors 在配置上有必定的侷限性。git
爲了解決以上問題,決定本身動手擼一個插件 egg-origin。這是一箇中間件,代碼很是簡單。github
沒錯,以上就是所有要代碼了😅😅跨域
原理:每一個請求過來的時候,拿到它的 origin,若是是在配置的白名單內,就手動設置 this.ctx.response.set('Access-Control-Allow-Origin', origin); 這樣就能夠根據本身需求來配置跨域白名單。數組
使用上跟 egg-cors 同樣cors
egg-origin 開啓:this
egg-origin 配置:插件
這裏 whiteList 參數能夠設置域名,也能夠直接設置成 [' * '],必定要是數組,也是爲了保持跟 egg-cors 的相同的配置習慣。
egg-origin 設置的白名單,會覆蓋 egg-cors 的配置。站在巨人的肩膀上,才能看的更遠,感謝巨人。
目前還只是支持徹底匹配的模式,後面的迭代計劃包括配置 一級域名,全部的子域名均可以,還會加上 【黑名單】 配置,來過濾某些域名。