跨域調試問題臨時解決方案

const Koa = require("koa");
const proxy = require('koa-better-http-proxy');

const app = new Koa();

const proxy_web = proxy("http://localhost:17900",{});



const proxy_list = {
    foo:"http://foo.com",
    bar:"http://bar.com",
    noop:"http://noop.com",
    nothing:"http://nothing.com",
}

const proxy_middle_ls = {};
Object.keys(proxy_list).forEach(key=>{
  proxy_middle_ls[key] = proxy(proxy_list[key],{})
});

app.use((ctx,next)=>{
  let path = ctx.path;
  let subDomain = "";
  if(/^\/([^\/]+)/.test(path)){
      subDomain = RegExp["$1"];
      if(!proxy_list[subDomain]){
        subDomain = "";
      }
  }else{
      subDomain = ""
  }

  ctx.response.set({
    "Access-Control-Allow-Origin":"*"
  });

  if(subDomain){
    path = path.replace("/" + subDomain,"");
    ctx.path = path;
    ctx.request.path = path;
    console.log(path);
    return proxy_middle_ls[subDomain](ctx,next);
  }else{
    return proxy_web(ctx,next);
  }
})


app.listen(18000);

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • GitChat技術雜談 前言 本文較長,為了節省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,715評論 7 110
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • 這是加了濾鏡 覺得還是不畫背景好看 這個背景已經是讓人難以接受 這可以說是很沒有墨水的一次繪畫了 哭唧唧
    木雞呆若閱讀 234評論 0 0
  • 常年的胃病又復發了,吃了藥以后在家昏昏沉沉的躺了一天。今日,多云,偶有小雨,小的仿佛只是天空無意漏的幾滴水。傍晚時...
    遠逝之風yuki閱讀 185評論 0 2
  • 趙蓮貴把書從三輪車上一本本拿下來擺在地上,擺到一半,又把地上的書一本本撿起來扔到三輪車上。怕別人不知道他是買舊書的...
    趙蓮貴閱讀 395評論 0 2