<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      nodejs服務實現反向代理,解決本地開發接口請求跨域問題

      前后端分離項目需要解決第一個問題就是,前端本地開發時如何解決通過ajax請求產生的跨域的問題。一般的做法是通過本地配置nginx反向代理進行處理的,除此之外,還可以通過nodejs來進行代理接口。當然,要實現這個前提是,前端開發環境必須運行在nodejs服務中,所幸的是,現在前端的開發自動化工具都是建立在nodejs上的,所以這個前提也不是很重要。

      webpack-dev-server配置跨域方案

      如果你項目是用webpack作為前端自動化構建工具的話,那么可以引用webpack-dev-server來進行配置跨域方案。webpack-dev-server是一個小型的nodejs服務器,是基于express框架的,用于實時監聽和打包編譯靜態資源。其中里面有一個屬性是proxy,是專門來配置代理請求接口的。

      舉個例子:

      比如我現在通過webpack構建了一個本地開發環境,端口號是9000,現在我要在本地去請求(GET) http://jsonplaceholder.typicode.com/users 地址獲取數據,如果前端沒有設置代理的話,請求會因為跨域請求失敗。這時候通過如下配置,就可以正常請求了。

      devServer: {
         contentBase: __dirname + "/",
         port: 9000,
         proxy: {
           "/users": {    //需要代理的路徑
             target: "http://jsonplaceholder.typicode.com",  //需要代理的域名
             changeOrigin: true  //必須配置為true,才能正確代理
           }
         }
      }

      通過如上配置,然后在js里面這樣請求就可以成功拿到數據了:

      //使用fetch獲取ajax請求
      fetch('/users')  //填寫路徑即可
        .then(function(response) {
          return response.json()
        }).then(function(json) {
          console.log('parsed json', json)
        }).catch(function(ex) {
          console.log('parsing failed', ex)
        })

      這是通過webpack-dev-server配置的代理方案,那如果沒有webpack-dev-server服務,要如何配置代理方案呢?比如在gulp和fis環境中,要怎么設置nodejs的代理服務。這時候我們就得來追尋下webpack-dev-server代理的實現機制了。

      http-proxy-middleware模塊設置代理服務

      如果仔細閱讀webpack-dev-server的文檔,就會發現其實webpack-dev-server的代理方案是引用了http-proxy-middleware模塊來設置的。這里要注意的是http-proxy-middleware模塊也是運行在nodejs服務,因此前端需要運行一個nodejs服務,這里以express為例子:

      var express = require('express');
      var proxy = require('http-proxy-middleware');
      var app = express();
      app.use('/users', proxy({
          target: "http://jsonplaceholder.typicode.com",
          changeOrigin: true
      }));
      // 省略各種配置  ... ...
      app.listen(..., 9000);

      如上面代碼展示,我們就可以在本地端口9000訪問到 http://jsonplaceholder.typicode.com/users 的數據,其請求接口和上面一致。其實這段代碼跟webpack-dev-server代理很相似的,應該說一樣的,因為本來就是同一個東西的。在這里就不做更多介紹了,如果需要了解更多直接去看官方文檔 https://github.com/chimurai/http-proxy-middleware

      posted on 2017-05-27 12:04  canfoo#!  閱讀(20372)  評論(2)    收藏  舉報

      導航

      主站蜘蛛池模板: 亚洲成av人片无码迅雷下载| 国产三级精品片| 国产成人不卡一区二区| 狠狠五月深爱婷婷网| 国内少妇人妻偷人精品| 国产成人精品a视频| 国产区免费精品视频| bt天堂新版中文在线| 久久精品国产男包| 中文字幕国产精品av| 麻豆人人妻人人妻人人片av| 绝顶丰满少妇av无码| 亚洲欧洲一区二区天堂久久| 亚洲av不卡电影在线网址最新| 性色av无码久久一区二区三区| 国产黄色看三级三级三级| 大伊香蕉精品一区二区| 在线播放亚洲成人av| 欧美日韩中文字幕视频不卡一二区| 永久免费AV无码网站大全| 一区二区中文字幕久久| 国产午夜一区二区在线观看| 体验区试看120秒啪啪免费| 精品国产大片中文字幕| h动态图男女啪啪27报gif| 亚洲欧美成人一区二区在线电影| 中文文字幕文字幕亚洲色| 中文字幕日韩精品亚洲一区| 亚洲VA成无码人在线观看天堂| 无码福利写真片视频在线播放| 国产桃色在线成免费视频| 一区二区三区在线 | 欧洲| 国产精品老年自拍视频| 国产一级精品在线免费看| 精品国产福利久久久| 亚洲色大成网站WWW久久| 在线精品另类自拍视频| 亚洲中文字幕一区二区| 亚洲欧美综合中文| 久久热这里这里只有精品| 成人性生交片无码免费看|