(クロスドメイン、設定複数のプロキシを解決するために)プロキシエージェントの使用

(クロスドメイン、設定複数のプロキシを解決するために)プロキシエージェントの使用

まず、エージェントは何ですか

文字通りの意味は、仲買人、オープンプロキシに似て、原理は、ローカル仮想サーバーを作成し、要求されたデータを受信して​​いる間に、要求されたデータを送信することで、

サーバのとサーバ間の使用は、インタラクティブ、そこにはクロスドメインの問題ではありませんが、また、完全にクロスドメインを解決するために、独自の独立したフロントエンドの方法に依存しています

VUE CLI3と例

私は今、地元のインターフェースを要求する必要があります

ここに画像を挿入説明

//  cli3     vue.config.js
  devServer: {
    proxy:{
      "/api": {
          target: "http://www.xiongmaoyouxuan.com", // 需要代理的域名
           ws: false, // 是否启用websockets
          changeOrigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求							的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
          pathRewrite: {  //重写匹配的字段,如果不需要在请求路径上,重写为""
              "^/api": "/api"
          }
      },
   
  },
  }




  //cli2的放在config文件夹中的index.js  中
    dev: {
    proxyTable:{
      "/api": {
          target: "http://www.xiongmaoyouxuan.com", // 需要代理的域名
           ws: false, // 是否启用websockets
          changeOrigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求							的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
          pathRewrite: {  //重写匹配的字段,如果不需要在请求路径上,重写为""
              "^/api": "/api"
          }
      },
  },
  }

axiosの作成には、この構成beseURL

const ajax = axios.create({
    baseURL:"/api",
    timeout: 6000,//请求超时时间
})

リクエスト作成

export function getData() { //get
  return request({
    url: '/search/home',
    method: 'GET'
  })
}

この試合では、ターゲット/以前、pathRewriteによると、その後、あなたが要求され、AJAXに追加されます。このフィールドに行くためのターゲットにエージェントになります
意味それから、あなたのURL要求が一致するプロキシを満たしているあなたを追加し、おそらくあなたのbeseURLです代理店は何の問題ではない
にもマッチした部分しばらくの取り扱い。
このような仮想サーバの要求があります

http://www.xiongmaoyouxuan.com/api/search/home

しかし、あなたはローカルアドレス要求は次のようになります見ます

ここに画像を挿入説明

複数のエージェントの設定

ただ、エージェントがルールを満たすことができ、あなたの地元の要望を聞かせて

    proxy:{
      "/api": {
          target: "http://www.xiongmaoyouxuan.com", 
          // ws: true, 
          changeOrigin: true
          pathRewrite: {
              "^/api": "/api"
          }
      },
      "/user": {
          target: "http://www.xiongmaoyouxuan.com",
          // ws: true, 
          changeOrigin: true
          pathRewrite: {
              "^/user": "/api"
          }
      },
   
  }, 

axiosの作成には、この構成beseURL

const ajax = axios.create({
    baseURL:"/",
    timeout: 6000,//请求超时时间
})

リクエスト作成


export function getData() { //get
  return request({
    url: 'api/search/home',
    method: 'GET'
  })
}
export function getData1() { //get
  return request({
    url: 'user/search/home',
    method: 'GET'
  })
}


二つのインターフェース、同インターフェースへのプロキシ要求を通ります。だから、代理店のよりよい理解のかどうかを確認します。私はあなたのコメントエリアに伝えることができます疑います。

公開された52元の記事 ウォン称賛82 ビュー30000 +

おすすめ

転載: blog.csdn.net/marendu/article/details/103733286